gpt4 book ai didi

iphone - 重复符号_OBJC_METACLASS_$_SBJsonParser

转载 作者:行者123 更新时间:2023-11-29 04:32:44 25 4
gpt4 key购买 nike

我刚刚将 AWSIOSSDK.framework 和 Facebook SDK 一起包含在我的项目中,然后出现构建错误:

ld: duplicate symbol _OBJC_METACLASS_$_SBJsonParser in /Users/tom8/Desktop/site1/site1/facebook-ios-sdk/libfacebook_ios_sdk.a(SBJsonParser.o) and /Users/tom8/Desktop/AWSiOSSDK.framework/AWSiOSSDK(SBJsonParser.o) for architecture i386

我使用iOS Facebook SDK静态库,所以我不能简单地删除facebooksdk文件夹中的sbjson文件。我还尝试删除 AWSIOSSDK 文件夹中的 sbjson 文件,但也不起作用。有人可以给我一些建议吗?

最佳答案

几乎无一异常(exception),当我遇到重复的符号构建错误时,这是​​因为我过多地从其他 .h 文件中 #include-ing .h 文件。解决方案几乎总是这两个简单的步骤:

  1. 将尽可能多的 #include 指令移至 .m 文件中
  2. 在 .h 文件中使用 @protocol 和 @class 前向声明。

唯一需要从 .h 中 #include 的情况是当您实际扩展类或实现协议(protocol)时。如果您只需要在签名中使用类名或协议(protocol)名称,请使用前向声明并将 #include 移至 .m 文件。

示例:

foo.h

#include "Bar.h"
#include "BazProtocol.h"
#include "BarDelegateProtocol.h"
@interface Foo:NSObject <BarDelegate>
@property (strong, nonatomic) id<Baz> myBaz;
@property (strong, nonatomic) Bar *myBar;
@end

成为

#include "BarDelegateProtocol.h"
@class Bar;
@protocol Baz;

@interface Foo:NSObject
@property (strong, nonatomic) id<Baz> myBaz;
@property (strong, nonatomic) Bar *myBar;
@end

关于iphone - 重复符号_OBJC_METACLASS_$_SBJsonParser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11498462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com