【发布时间】:2011-11-20 16:25:03
【问题描述】:
我有 2 种方法给我一个警告:
id LoadObjectFromFile(NSString* filename) {
if ((filename = DocumentPath(filename, NO))) {
return [NSKeyedUnarchiver unarchiveObjectWithFile: filename];
} else {
return nil;
}
}
BOOL saveObjectWithFile(NSString* filename, id object) {
if ((filename = DocumentPath(filename, YES))) {
return [NSKeyedArchiver archiveRootObject: object toFile: filename];
} else {
return NO;
}
}
这给了我“没有以前的函数原型”警告。
我宁愿不只是禁用 xcode 中的警告。
我哪里错了?
【问题讨论】:
-
您是在尝试编写函数还是方法?这些是objective-c中不同的东西
-
那个警告非常没用。我总是把它关掉。
-
@WTP:这不是没用的。在声明之前使用函数会使您面临隐式类型不匹配的风险。例如,声明之前的任何使用都会假定它返回
int,因此如果函数返回float,您将得到一个垃圾结果(因为真正的返回值在不同的位置)。这就是为什么您必须在使用函数之前声明它们的原因,警告会提醒您。 -
即使我在 .h 上声明了方法,它也会对 .m 文件中的定义发出警告。
标签: objective-c cocoa warnings function-prototypes