在两个框架中实现类 PLBuildVersion

0 投票
最新提问 2月 21 分类:IOS | 用户: 点心 (260 分)
重新分类 2月 21 用户:bczs

iOS 10 / Xcode 8 GM生成得到下面的信息,Xcode 7时从来没遇到过。

objc[25161]: Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x12049a910) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x1202c4210). One of the two will be used. Which one is undefined.

(注意: 只有在模拟器中才出现, 在实际设备上不显示)。

1个回答

0 投票
最新回答 2月 21 用户: 晴澈 (210 分)
大体思路很简单:

如果你的应用程序(或依赖项,如Pods)使用框架,可使用显式(或隐式)PhotoLibraryServices.framework或AssetsLibraryServices.framework依赖。Xcode会发出警告(即使你只使用其中之一)。它可能是Photos/PhotosUI.framework或AssetsLibrary.framework,或其它(我没有完整的依赖列表,但是有可能的)。

问题是什么?

具有PLBuildVersion名称的类在两个类PhotoLibraryServices.framework、AssetsLibraryServices.framework中都定义了。类名在Objective-C中应该是唯一的(不能定义具有相同名称的2个类),因此无法确定哪个类将在运行时使用。

但是,我认为它不会出一个问题,因为两个类有相同的方法和字段(通过反汇编检查),我猜这两个类都是从同一个源编译的。
欢迎来到编程助手,编程方面有什么不懂的问题可以尽管在这里提问,你将会收到热心爱好者的回答。
...