0

我目前正在将 iOS Salesforce Chatter 集成到 iPad 应用程序中。添加 Salesforce 移动 SDK(包括 MKNetworkKit-iOS)时,我在 Reachability.o 上遇到重复错误。我知道我们在 MKNewtorkKit-iOS 中添加了可达性,但我还必须从我的项目中访问它。

目前我正在通过添加#import“Reachability.h”来访问可达性(从我的代码中)

如果我从我的项目中读取了 Reachibility 类,我需要访问 MKNetworkKit-iOS 的可达性类副本,但我不能导入像“MKNetworkKit-iOS/Reachabilty.h”这样的东西——尝试了很多组合,希望Xcode 自动完成功能不适用于这个库,但没有运气。

目前使用 Xcode 5.1 和 iOS SDK 7.1 和最新的 Salesfroce Mobile SDK 2.1.1(今天取消了所有更改)。

我看到的错误:

重复符号 _kReachabilityChangedNotification 在:/FULL_PATH_TO_BUILD_LOCATION/Build/Intermediates/LDPConference.build/Debug-iphoneos/LDPConference.build/Objects-normal/armv7/Reachability.o /FULL_PATH_TO_PROJECT/SalesforceMobileSDK/MKNetworkKit-iOS/libMKNetworkKit-iOS.a(Reachability. o) 重复符号 _OBJC_CLASS_$_Reachability 在:/FULL_PATH_TO_BUILD_LOCATION/Build/Intermediates/LDPConference.build/Debug-iphoneos/LDPConference.build/Objects-normal/armv7/Reachability.o /FULL_PATH_TO_PROJECT/SalesforceMobileSDK/MKNetworkKit-iOS/libMKNetworkKit-iOS。 a(Reachability.o) 重复符号 _OBJC_METACLASS_$_Reachability 位于:/FULL_PATH_TO_BUILD_LOCATION/Build/Intermediates/LDPConference.build/Debug-iphoneos/LDPConference.build/Objects-normal/armv7/Reachability。o /FULL_PATH_TO_PROJECT/SalesforceMobileSDK/MKNetworkKit-iOS/libMKNetworkKit-iOS.a(Reachability.o) ld:架构 armv7 clang 的 3 个重复符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

非常感谢你花时间研究这个,J

4

2 回答 2

3

Reachability.m您可以从编译中删除这两个文件中的任何一个。

转到项目设置 -> 构建阶段 -> 编译源 -> 选择 Reachability.m -> 删除它。

这不会从系统中删除文件,只会从编译中删除。将使用标头,并且不会重复实现。

您还可以重命名其中一个类以避免命名冲突。

于 2014-03-12T12:23:58.473 回答
1

非常感谢@redent84。工作得很好。

我还收到了 Salesforce 论坛上 Kevin Hawkins 提供的替代解决方案的答案:

另一种解决方案是搭载通过 SFNetworkEngine 公开的可达性:

[SFNetworkEngine sharedInstance].reachabilityChangedHandler = ^(SFNetworkStatus newStatus) {
    // Handle your network changes here.
};

这最终利用了 MKNetworkKit 的可达性功能。

Salesforce论坛上的相同主题在这里

于 2014-03-13T09:02:29.247 回答