我正在尝试NSLog
NSString
的值,这是@autoreleasepool
内部的引用,但XCode抱怨Format指定类型'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;
}
(我完全误解了这个问题)。
所以,是的 - 使用'%@'作为对象类型。将* myString传递给NSLog()以将NSString **转换为NSString *。
请注意,您应该使用NSError
来封装错误,并且应该在分配之前检查您的pass by reference参数是否为NULL。
看到: