如何在MKNetworkKit-iOS中访问可达性,或者避免使用自己添加的可达性来重复符号? [英] How to access to Reachability in MKNetworkKit-iOS or avoid duplicate symbols with own added Reachability?

查看:70
本文介绍了如何在MKNetworkKit-iOS中访问可达性,或者避免使用自己添加的可达性来重复符号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在将iOS Salesforce Chatter集成到iPad应用程序中.当添加Salesforce Mobile SDK(包括MKNetworkKit-iOS)时,在Reachability.o上出现重复错误.我知道我们已经在MKNewtorkKit-iOS中添加了可达性",但是我还必须从自己的项目中访问它.

I am currently implementing iOS Salesforce Chatter integration into iPad app. When Salesforce Mobile SDK was added (inlcuding MKNetworkKit-iOS) I got duplicate error on Reachability.o. I understand that we have Reachability added into MKNewtorkKit-iOS, but I also have to have access to it from insdie my project.

当前,我通过添加来访问可达性(从我的代码中)#import"Reachability.h"

Currently I am accessing reachability (from within my code) by adding #import "Reachability.h"

如果我从项目中阅读了可达性类,则需要获得对可达性类的MKNetworkKit-iOS副本的访问权限,但是我无法导入"MKNetworkKit-iOS/Reachabilty.h"之类的内容-尝试了很多希望Xcode自动完成功能无法在该库中正常运行,但是没有运气.

If I get read of Reachibility class from my project, I need to gain access to MKNetworkKit-iOS copy of reachability class, but I can't import anything like "MKNetworkKit-iOS/Reachabilty.h" - tried quite a few combination hoping that Xcode autocomplete did not work properly for this library, but no luck.

当前将Xcode 5.1与iOS SDK 7.1和最新的Salesfroce Mobile SDK 2.1.1结合使用(今天已撤消所有更改).

Currently using Xcode 5.1 with iOS SDK 7.1 and latest Salesfroce Mobile SDK 2.1.1 (all changes pulled today).

我看到的错误:

重复的符号_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:3个重复的体系结构armv7 v符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

duplicate symbol _kReachabilityChangedNotification in: /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) duplicate symbol _OBJC_CLASS_$_Reachability in: /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) duplicate symbol _OBJC_METACLASS_$_Reachability in: /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: 3 duplicate symbols for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)

非常感谢您调查此事,J

Thanks a lot of your time looking into this, J

推荐答案

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

You can remove any of the two Reachability.m files from the compilation.

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

Go to Project Settings -> Build Phases -> Compile Sources -> Select Reachability.m -> Delete it.

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

This won't delete the file from the system, only from the compilation. The header will be used and the implementation won't be duplicated.

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

You can also rename one of the classes to avoid naming conflicts.

这篇关于如何在MKNetworkKit-iOS中访问可达性,或者避免使用自己添加的可达性来重复符号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆