Pods-Facebook-iOS-SDK:警告`selection`& `allowsMultiple`

时间:2015-06-24 21:21:25

标签: ios objective-c cocoapods facebook-ios-sdk

使用Cocoa-Pod管理依赖关系的.xcworkspace会返回此警告:“自动属性合成不会合成属性selection;它将由它的超类实现,使用@dynamic来确认意图“在FBFriendPickerViewController.h;和FBPeoplePickerViewController.h中的allowsMultipleSelection相同。

评论@property (nonatomic, copy, readwrite) NSArray *selection;& @property (nonatomic) BOOL allowsMultipleSelection;根本没有对.xcworkspace产生任何影响。目标构建没有问题。但警告很烦人。无论目标是什么,它都会弹出每个构建:

enter image description here

您建议如何处理这些警告?

1 个答案:

答案 0 :(得分:2)

与警告提示一样,一个选项是将@dynamic selection;添加到FBFriendPickerViewController.m@dynamic allowsMultipleSelection;中的实现FBPeoplePickerViewController.m中的实现(您也可以使用#pragma)指示使警告静音,或者按照你的建议,完全注释掉多余的声明。

当然,如果您使用CocoaPods,那么Facebook SDK可能不受源代码控制,因此除非您将其添加到源代码管理中,否则您的修补程序将是短暂的 - 但在这种情况下,您可能会更好地升级改为使用新的4.2 SDK,它已被拆分为多个框架。在你的podfile替换 Facebook-iOS-SDK (~> 3.23.0)(或您拥有的任何版本) FBSDKCoreKit (~> 4.2)FBSDKLoginKit (~> 4.2)FBSDKShareKit (~> 4.2)然后运行pod update。有很多API更改,但大多数只是导入三者的正确框架,并更改了FB'前缀为' FBSDK' - 但有些东西,例如登录API已经完全改变(大多简化,幸运)。请参阅升级指南here中的更多内容。

*更新*

如果您不想升级Facebook SDK,一个简单的解决方案是使用以下行修改您的podfile:

pod 'Facebook-iOS-SDK', '~> 3.23.0', :inhibit_warnings => true

然后运行pod update - 这将仅抑制来自该框架的所有警告。我通常不是抑制警告的粉丝,但由于这是相当温和的,并且根据您的使用情况升级可能并非平凡,与成为警告盲人相比,这可能是较小的罪恶&#34 ;因为你只是习惯了总是有警告(例如,当出现一些不那么好的问题时你不会注意到。)