Objective c 用于JSON解析的NSDictionary或自定义NSObject

Objective c 用于JSON解析的NSDictionary或自定义NSObject,objective-c,ios,json,nsdictionary,nsobject,Objective C,Ios,Json,Nsdictionary,Nsobject,我见过很多人使用NSDictionary进行JSON解析: //ViewController.m NSString* forename = [jsonDict valueForKey:@"forename"]; NSString* surname = [jsonDict valueForKey:@"surname"]; 但我也有人从NSDictionary创建自定义NSObject 然后将其存储在NSMutableArray中: 如果需要,可以稍后访问 在我的例子中,我有一个UITableVi

我见过很多人使用NSDictionary进行JSON解析:

//ViewController.m
NSString* forename = [jsonDict valueForKey:@"forename"];
NSString* surname = [jsonDict valueForKey:@"surname"];
但我也有人从NSDictionary创建自定义NSObject

然后将其存储在NSMutableArray中:

如果需要,可以稍后访问

在我的例子中,我有一个UITableView,它从JSON获取数据。数据至少使用一次,但很可能会被更多地使用,例如在设备旋转时。JSON数据不应该永久存储在文件中,因为它会定期更新,并且每次应用程序启动时都会下载


在我的场景中,我应该使用自定义NSObject还是NSDictionary?

使用自定义对象的一个理由是,使用NSManagedObject只需几步,它可以让您利用核心数据来管理对象图。

使用NSDictionary的理由是它更简单、更容易理解,而且您定义的次要类和关联的h/m文件更少,因此在项目中管理的工作量也更少。在flux中的项目中编辑/扩展也更容易。

自定义对象的存储空间也可以说更紧凑。我让这个问题听起来更像是一个讨论问题,而不是问答,希望我的编辑能让它更好一些。
//JSONObject.h
@interface JSONObject : NSObject

@property (nonatomic) NSString* forename;
@property (nonatomic) NSString* surname;
@end

//JSONObject.m
@implementation JSONObect

@synthesize forename = _forename;
@synthesize surname = _surname;

@end

//ViewController.m
JSONObject* jsonObject = [[JSONObject alloc] init];
[jsonObject setForename:[jsonDict valueForKey:@"forename"]];
[jsonObject setSurname:[jsonDict valueForKey:@"surname"]];
NSMutableArray* jsonObjectsArray = [NSMutableArray arrayWithCapacity:20];
[jsonObjectsArray addObject:jsonObject];