好的,这是我的问题...
我的宏定义
#define DRK_INIT(X) -(id)init \
{ \
self = [super init]; \
if (self) { \
X \
} \
return self; \
}
#define DRK_DEALLOC(X) -(void)dealloc \
{ \
X \
[super dealloc]; \
}
#define DRK_DICFROMFILE(X) [NSDictionary dictionaryWithContentsOfFile:(X)]
#define DRK_MUTDICFROMFILE(X) [NSMutableDictionary dictionaryWithContentsOfFile:(X)]
#define DRK_ARRFROMFILE(X) [NSArray arrayWithContentsOfFile:(X)]
#define DRK_MUTARRFROMFILE(X) [NSMutableArray arrayWithContentsOfFile:(X)]
#define DRK_STRFROMFILE(X) [NSString stringWithContentsOfFile:(X) encoding:NSUTF8StringEncoding error:nil]
#define DRK_WRITESTRTOFILE(X,Y) [(X) writeToFile:(Y) atomically:YES encoding:NSUTF8StringEncoding error:nil]
#define DRK_WRITEDICTOFILE(X,Y) [(X) writeToFile:(Y) atomically:YES]
#define DRK_WRITEARRTOFILE(X,Y) [(X) writeToFile:(Y) atomically:YES]
现在,当我尝试使用它们时(就像我不使用 ARC 时一样),像这样,我不断收到警告:
// Type specifier missing, defaults to 'int'
DRK_INIT();
- (void)someFunction:(NSString*)str
{
// Implicit conversion of 'int' to 'NSString *' is disallowed with ARC
[self setContent:DRK_STRFROMFILE(str)];
}
有什么想法吗?如何消除所有这些——实际上是无害的——警告/错误?
提示:
- 请注意,整个事情过去和现在仍在工作,但在转换为 ARC 后,它一直显示几个警告/错误。
- 我正在运行 Xcode 4.5.1、Mac OS X 10.7.5 (Lion) 并使用 LLVM 4.1 进行编译