2014-09-16 2 views
8

App lief gut, aber auf Xcode 6 seine mit Fehler „Fehlende Rahmen für Methodendeklaration“ auf dem folgenden Verfahren:Fehlende Rahmen für Methodendeklaration - In-App-Empfang verificationController

- (NSString *)encodeBase64:(const uint8_t *)input length:(NSInteger)length{ 
    static char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/="; 
    NSMutableData* data = [NSMutableData dataWithLength:((length + 2)/3) * 4]; 
    uint8_t* output = (uint8_t*)data.mutableBytes; 
    for (NSInteger i = 0; i < length; i += 3) { 
     NSInteger value = 0; 
     for (NSInteger j = i; j < (i + 3); j++) { 
      value <<= 8; 
      if (j < length) { 
       value |= (0xFF & input[j]); 
      } 
     } 
     NSInteger index = (i/3) * 4; 
     output[index + 0] =     table[(value >> 18) & 0x3F]; 
     output[index + 1] =     table[(value >> 12) & 0x3F]; 
     output[index + 2] = (i + 1) < length ? table[(value >> 6) & 0x3F] : '='; 
     output[index + 3] = (i + 2) < length ? table[(value >> 0) & 0x3F] : '='; 
    } 
    return [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease]; 
} 

// Exact code above @end is : 

/* 
- (NSString *)encodeBase64:(const uint8_t *)input length:(NSInteger)length 
{ 
#warning Replace this method. 
return nil; 
} 


- (NSString *)decodeBase64:(NSString *)input length:(NSInteger *)length 
{ 
#warning Replace this method. 
return nil; 
} 

#warning Implement this function. 
char* base64_encode(const void* buf, size_t size) 
{ return NULL; } 

#warning Implement this function. 
void * base64_decode(const char* s, size_t * data_len) 
{ return NULL; } 

*/ 
@end 
+0

Wo haben Sie diesen Code abgelegt? – Larme

+0

in VerficationController.m (Klasse von Apple zur Verfügung gestellt) – Zubair

+0

Wo genau? Können Sie die Datei anzeigen? Vor dem '@ Ende'? Könntest du zeigen, was davor ist und was danach ist? – Larme

Antwort

10

Ich stieß auch auf dieses Problem. Es scheint so zu sein, dass sie mit Xcode6 + nicht möchten, dass Sie C/C++ - Code in einen Objective-C-Kontext stellen.

Ich habe den C/C++ - Code, der im VerificationController war, vor den @implementation/@end-Block verschoben und danach alles kompiliert.

1

würde ich empfehlen:

a) die doppelte Kontrolle, die Ihre Methode

b) Entfernen

innerhalb der Datei in-zwischen @implementation und @end existiert
- (NSString *)encodeBase64:(const uint8_t *)input length:(NSInteger)length 
{ 
    #warning Replace this method. 
    return nil; 
} 

Wenn es noch in der Datei in der Datei vorhanden ist (scheint, was Ihre Kommentare im ursprünglichen Beitrag vorschlagen)?

1

Ich hatte auch das gleiche Problem mit Xcode 6.0.1 konfrontiert.

Umordnen der Methoden wie folgt (http://i.imgur.com/5TH6OaV.png) stumm die Fehler ("Missing Kontext für Methodendeklaration" und "'@end' muss in einem Objective-C-Kontext angezeigt werden") für mich. Ich hoffe es hilft dir.

+0

Könnten Sie bitte den endgültigen VerificationController.m-Code veröffentlichen? Ich habe versucht, es neu zu ordnen, wie Sie taten, aber die Fehler persistieren ... Cheers – jeddi

+1

Hallo jeddi, ich habe die .m-Datei hier hochgeladen: https://www.mediafire.com/?449p3xul53rfcf3 –

+0

Brilliant! Vielen Dank. Könnten Sie bitte auch die h-Datei posten? Ich denke, es unterscheidet sich von meinem, wie ich ein paar Fehler bekomme ... Prost – jeddi

Verwandte Themen