JSON框架中重复的类有问题吗?

S.P*_*lip 5 iphone facebook objective-c duplicates sbjson

可能重复:
解决Objective-C命名空间冲突的最佳方法是什么?

在我的应用程序中,我使用SBJSON框架(Stig Brautaset)与我的json api进行交互,一切运行良好.

但现在我正在使用Facebook SDK使用Facebook SSO.所以我按照Facebook开发者网站的指示将facebook sdk包含在我的项目中.

但问题是,facebook sdk也使用了一些SBJSON类,如SBJSONParser,SBJsonWriter等,这些类已经存在于我使用过的SBJSON框架中.这些类的名称相似,但方法和属性不同.所以我既不能删除也不能编辑其中任何一个.(我是初学者,我不知道如何编辑它们而不会丢失任何东西).

因此,由于重复的类,它显示了许多错误.

我能在这做什么?请帮我 :)

下面给出了两个JSonParser类的头文件(.h).(.m文件不能在这里给出,因为它们太长了.)

在下面给出的Facebook SDK中使用的JSonParser.h

#import <Foundation/Foundation.h>
#import "SBJsonBase.h"

@protocol SBJsonParser
- (id)objectWithString:(NSString *)repr;

@end

@interface SBJsonParser : SBJsonBase <SBJsonParser> {

@private
const char *c;

}   
@end


@interface SBJsonParser (Private)

- (id)fragmentWithString:(id)repr;

@end
Run Code Online (Sandbox Code Playgroud)

在下面给出的SBJson Framework中使用的JSonParser.h

#import <Foundation/Foundation.h>

@interface SBJsonParser : NSObject {


NSString *error;
NSUInteger depth, maxDepth;

}

@property NSUInteger maxDepth;

@property(copy) NSString *error;

- (id)objectWithData:(NSData*)data;

- (id)objectWithData:(NSData*)data;

- (id)objectWithString:(NSString*)jsonText error:(NSError**)error;


@end
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

Pey*_*loW 0

您需要决定保留哪个 SBJson 实现,然后从项目设置中手动删除另一个。

主要问题是有很多优秀的 iOS 开源代码可供使用。但这个开源的分发方法充其量是晦涩难懂的。没有比在 U 盘上复制代码更先进或更简单的了。

我写了一篇较长的博客文章,主题为“iOD 开源状态:以及如何应对”http ://blog.jayway.com/2011/05/16/the-state-of-ios-open -来源和做什么/

我的建议是使用将 Xcode 项目作为其他 Xcode 项目的依赖项的功能。效果很好,我已经使用这个方法5年多了,效果很好。