31

AFNetworking在一个项目中使用了最优秀的库,我目前正在升级到 iOS 6。我正在升级,减少针对 iOS 6 SDK 编译时收到的一堆警告。

AFNetworking 在所有目标中都给了我两个警告:

SystemConfiguration framework not found in project, or not included in
precompiled header. Network reachability functionality will not be available.

MobileCoreServices framework not found in project, or not included in
precompiled header. Automatic MIME type detection when uploading files
in multipart requests will not be available.

不过,事情是这样的:这两个libraries 添加到我所有的targets. 我想以正确的方式摆脱这些警告;我不会修改AFNetworking文件。我怀疑这是 Xcode 很傻。诚然,这是一件小事,但留下警告是不好的做法。

如何删除这些警告?

我试过重新启动 Xcode 和清理。两者都不起作用。

4

3 回答 3

75

我不确定您是否使用CocoaPods,但这是在 AFNetworking Github 页面上跟踪的一个已知问题。

我可以通过将正确的导入语句直接添加到我的 `PROJECTNAME-Prefix.pch 来解决这个问题,我将其更改为这个。

#ifdef __OBJC__
  #import <UIKit/UIKit.h>
  #import <SystemConfiguration/SystemConfiguration.h>
  #import <MobileCoreServices/MobileCoreServices.h>
#endif

如果您有其他内容,请不要删除它。只需添加 SystemConfiguration 和 MobileCoreServices 的导入。

对于 OS X:

#ifdef __OBJC__
    #import <Cocoa/Cocoa.h>
    #import <SystemConfiguration/SystemConfiguration.h>
    #import <CoreServices/CoreServices.h>
#endif
于 2012-11-20T18:17:50.010 回答
14

如果您使用的是 swift:Xcode 在编译Prefix.pch文件之前编译 Swift 代码,因此即使您的 .pch 文件中有正确的导入,您也会收到这些警告。我发现的最佳解决方案是Bridging-Header.h在导入 AFNetworking 之前将它们添加到项目文件中:

#import <SystemConfiguration/SystemConfiguration.h>
#import <MobileCoreServices/MobileCoreServices.h>
#import "AFNetworking.h"
于 2014-12-01T18:26:52.423 回答
1

这已经得到解答,但是,如果您正在开发一个可能同时为 OS X 和 iOS 编译的命令行工具(肯定不是 App Store),您可以添加以下内容:

#ifdef __OBJC__
    #import <Foundation/Foundation.h>
    #import <SystemConfiguration/SystemConfiguration.h>

    #if TARGET_OS_IPHONE
        #import <MobileCoreServices/MobileCoreServices.h>
    #elif TARGET_OS_MAC
        #import <CoreServices/CoreServices.h>
    #endif

#endif

通过评估您正在编译的目标,它将包含正确的文件。

于 2013-08-09T21:08:23.117 回答