Получение ошибок в коде NSError

#objective-c

#objective-c

Вопрос:

Я получаю ошибки в этом фрагменте кода; Я разместил сообщения об ошибках в комментариях. Не могу понять это.

Заранее спасибо.

 #import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{

    @autoreleasepool {

        NSMutableString *str = [[NSMutableString alloc]init];
        for (int i = 0; i < 10; i  ) {
        [str appendString:@"Aaron is cool!n"];
        }

        // Declare a pointer to an NSError object, but don't instantiate it.
        // The NSError instance will only be created if there is, in fact, an error.
        NSError *error = nil;

        // Pass the error pointer by reference to the NSString method
        BOOL success =[str writeToFile:@"/tmp/cool.txt"; // Expected "]"
          atomically:YES // Bad receiver type 'int'
            encoding:NSUTF8StringEncoding 
               error:amp;error];

        // Test the returned BOOL, and query the NSError if the write failed
        if (success) {
        NSLog(@"done writing /tmp/cool.txt");
        } else {
        NSLog(@"writing /tmp/cool/txt failed:@", error localizedDescription); //    Expected ')'
        }

    }
    return 0;
}
  

Ответ №1:

Если в вашем коде нет опечаток, это проблема

 // Pass the error pointer by reference to the NSString method
        BOOL success =[str writeToFile:@"/tmp/cool.txt"; // Expected "]"
          atomically:YES // Bad receiver type 'int'
            encoding:NSUTF8StringEncoding 
               error:amp;error];
  

Удалите точку с запятой «;» отсюда.

 BOOL success =[str writeToFile:@"/tmp/cool.txt"; // Expected "]"
  

Ответ №2:

попробуйте это:

 @autoreleasepool {
    NSMutableString *str = [[[NSMutableString alloc]init] autorelease];
    for (int i = 0; i < 10; i  ) {
        [str appendString:@"Aaron is cool!n"];
    }
    NSError *error = nil;
    BOOL success =[str writeToFile:@"/tmp/cool.txt"
                        atomically:YES
                          encoding:NSUTF8StringEncoding 
                             error:amp;error];
    if (success) {
        NSLog(@"done writing /tmp/cool.txt");
    } else {
        NSLog(@"writing /tmp/cool/txt failed: %@", [error localizedDescription]); 
    }

}
return 0;