Pods-Facebook-iOS-SDK:“selection”和“allowsMultiple”警告
Pods-Facebook-iOS-SDK: Warning for `selection` & `allowsMultiple`
具有 Cocoa-Pods 管理依赖项的 .xcworkspace returns 此警告:“Auto 属性 synthesis will not synthesize 属性 selection
;它将由其超类实现,使用@dynamic 来确认意图” in FBFriendPickerViewController.h; FBPeoplePickerViewController.h 中的 allowsMultipleSelection
也是如此。
注释掉 @property (nonatomic, copy, readwrite) NSArray *selection;
& @property (nonatomic) BOOL allowsMultipleSelection;
对 .xcworkspace 没有任何影响。目标构建没有问题。虽然警告很烦人。无论目标是什么,它都会在每次构建时弹出:
你有什么建议来处理这些警告?
如警告所示,一种选择是将 @dynamic selection;
添加到 FBFriendPickerViewController.m
中的实现,将 @dynamic allowsMultipleSelection;
添加到 FBPeoplePickerViewController.m
中的实现(您也可以使用#pragma 指令使警告静音,或者按照您的建议,完全注释掉多余的声明)。
当然,如果您使用的是 CocoaPods,那么 Facebook SDK 可能不受源代码控制,因此除非您将其添加到源代码控制,否则您的修复将是短暂的 - 但在这种情况下,您最好升级改为新的 4.2 SDK,它已被拆分为多个框架。在你的播客文件中替换
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
Then 运行 pod update
- 这将禁止仅来自该框架的所有警告。我通常不喜欢抑制警告,但由于这是相当良性的,并且根据您的使用情况,升级可能不是微不足道的,与成为 "warning blind" 相比,这可能是较小的危害,因为您只是习惯了总是有警告(例如,当出现一些不太良性的问题时,您不会注意到)。
具有 Cocoa-Pods 管理依赖项的 .xcworkspace returns 此警告:“Auto 属性 synthesis will not synthesize 属性 selection
;它将由其超类实现,使用@dynamic 来确认意图” in FBFriendPickerViewController.h; FBPeoplePickerViewController.h 中的 allowsMultipleSelection
也是如此。
注释掉 @property (nonatomic, copy, readwrite) NSArray *selection;
& @property (nonatomic) BOOL allowsMultipleSelection;
对 .xcworkspace 没有任何影响。目标构建没有问题。虽然警告很烦人。无论目标是什么,它都会在每次构建时弹出:
你有什么建议来处理这些警告?
如警告所示,一种选择是将 @dynamic selection;
添加到 FBFriendPickerViewController.m
中的实现,将 @dynamic allowsMultipleSelection;
添加到 FBPeoplePickerViewController.m
中的实现(您也可以使用#pragma 指令使警告静音,或者按照您的建议,完全注释掉多余的声明)。
当然,如果您使用的是 CocoaPods,那么 Facebook SDK 可能不受源代码控制,因此除非您将其添加到源代码控制,否则您的修复将是短暂的 - 但在这种情况下,您最好升级改为新的 4.2 SDK,它已被拆分为多个框架。在你的播客文件中替换
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
Then 运行 pod update
- 这将禁止仅来自该框架的所有警告。我通常不喜欢抑制警告,但由于这是相当良性的,并且根据您的使用情况,升级可能不是微不足道的,与成为 "warning blind" 相比,这可能是较小的危害,因为您只是习惯了总是有警告(例如,当出现一些不太良性的问题时,您不会注意到)。