“以前没有function的原型”警告
我使用shareKit来自己编程。
但是在FBConnectGlobal,有一些警告,
NSMutableArray* FBCreateNonRetainingArray() { CFArrayCallBacks callbacks = kCFTypeArrayCallBacks; callbacks.retain = RetainNoOp; callbacks.release = ReleaseNoOp; return (NSMutableArray*)CFArrayCreateMutable(nil, 0, &callbacks); }
像这个方法一样,它警告:“以前的函数FBCreateNonRetainingArray没有原型”
为了澄清Eric Dchao的回答,有人在facebook上显然没有在BOOL前面加上“static”
无论如何,从这个变化
BOOL FBIsDeviceIPad() { #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { return YES; } #endif return NO; }
对此
static BOOL FBIsDeviceIPad() { #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { return YES; } #endif return NO; }
给我修好了
根据c标准,将原型声明为
NSMutableArray* FBCreateNonRetainingArray(void); // ---------------> ^^^^ // Yes, with the void as the parameter
解决了这个问题。
更新 :禁用警告不是一个好的解决scheme,请检查@Derek Bredensteiner的答案。
在Xcode 4中,转到您的项目的生成设置。 search“原型”。 应该有一个叫做“失踪函数原型”的选项; 禁用它。
通过这里
这是一个全球性的function吗? 如果仅在当前文件中使用,则添加“ static ”。
可能的原因如下:
没有以前的'foo'原型
这意味着GCCfind了一个全局函数定义,而没有看到函数的原型。 如果一个函数在多个文件中使用,那么在某个头文件中应该有一个原型。 这使function和他们的用途不同步
如果该函数仅用于此文件,则使其为静态,以确保它永远不会在此文件之外使用,并logging它是本地函数