【发布时间】:2014-06-24 15:34:35
【问题描述】:
我不明白以下警告:
不兼容的指针类型将“NSError *__strong *”发送到“NSString *__autoreleasing *”类型的参数
抛出这个的方法是
BSSPhoneNumberFormatter *formatter = [[BSSPhoneNumberFormatter alloc] init];
NSString *tmp = self.dtlPhnNbr.text;
id objectValue;
NSError *error;
[formatter getObjectValue:&objectValue forString:tmp errorDescription:&error];
最后一行有警告。
BSSShoneNumberFormatter 的 h 文件是
#import <Foundation/Foundation.h>
@interface BSSPhoneNumberFormatter : NSFormatter
@end
方法是
- (BOOL)getObjectValue:(id *)anObject forString:(NSString *)string errorDescription:(NSString **)error {
*anObject = (id)[self stripNonDigits:string];
return YES;
}
我了解 (NSString **) 错误是指向指针的指针。另一篇文章说在被调用的方法和调用方法中都用 (NSString *) 替换 (NSString **),但是如果我这样做,我会遇到严重错误。
发生了什么事?
【问题讨论】:
标签: objective-c