我一直坚持将NSDictionary写入Object进程,我确信这个问题很简单,但我很想得到助手。这是我的代码:
我的自定义对象:
@interface User : NSObject
@property (nonatomic, retain) NSString *cId;
@property (nonatomic, retain) NSString *firstName;
@property (nonatomic, retain) NSString *lastName;
....
-(instancetype) initWithParameters:(NSDictionary*) parameters;
@end
#import "User.h"
@implementation User
-(instancetype) initWithParameters:(NSDictionary*) parameters
{
self = [super init];
if (self) {
[self setParameters:parameters];
}
return self;
}
- (void) setParameters:(NSDictionary*) parameters{
_cId = parameters[@"cId"];
_firstName = parameters[@"first_name"];
_lastName = parameters[@"last_name"];
....
}
和写作过程:
id userObjects = [resultData objectForKey:@"data"];
NSMutableArray* mUsers = [[NSMutableArray alloc] init];
for (NSDictionary* userParameters in userObjects) {
User *user = [[User alloc] initWithParameters:userParameters];
[mUsers addObject:user];
}
userObjects - NSArray从服务器数据中获取JSON对象。
问题是:在初始化之后没有发生任何事情,用户对象仍然是空的,然后我尝试了 - 在调用变量和字典中的键相同之后的setValuesForKeysWithDictionary并且没有任何改变。
有人能告诉我我做错了什么吗?谢谢!
答案 0 :(得分:1)
我相信您认为这些对象未初始化,因为您看到每个0 key/value pairs
对象旁边都有User
。
您的代码看起来不错,我认为在您实施[NSObject description]
(或[NSObject debugDescription]
)之后情况会发生变化:
- (NSString *)description
{
return [NSString stringWithFormat:@"cId=%@, firstName=%@, lastName=%@",
_cId, _firstName, _lastName];
}