Вывести значение NSString, которое установлено в авторелизпуле - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь NSLog значение NSString, которое является ссылками внутри @autoreleasepool, но XCode жалуется на Формат указывает тип 'char *', но аргумент имеет тип 'NSString * __ autoreleasing ** '

anotherFunction {

NSString *myString = nil;
 compute =  [self checkForError:data myString:&myString];
}


- (NSDictionary *)checkForError:(NSData *)data myString:(NSString **)myString {

    @autoreleasepool { 
            *myString = nil;
            @try {
                NSMutableString *myString1 = [[NSMutableString alloc] init];
                // do something on myString1
                  *myString = myString1;
  ------>              NSLog(@"mutableString is:%s", myString );  // Format specifies type 'char *' but the argument has type 'NSString *__autoreleasing **'
            }

    }

    return myDictionary;
}

1 Ответ

0 голосов
/ 01 марта 2019

(я совершенно не правильно понял вопрос).

Итак, да - используйте '% @' для типов объектов.Передайте * myString в NSLog (), чтобы преобразовать NSString ** в NSString *.

Обратите внимание, что вам, вероятно, следует использовать NSError для инкапсуляции ошибок, и вам следует проверить, передается ли ваш параметр передачи по ссылке.NULL перед присвоением ему.

См .:

https://nshipster.com/nserror/

...