无法将NSDictionary参数写入自定义对象

时间:2016-03-09 11:35:40

标签: ios objective-c parsing object nsdictionary

我一直坚持将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并且没有任何改变。

enter image description here

添加mUsers后: enter image description here

有人能告诉我我做错了什么吗?谢谢!

1 个答案:

答案 0 :(得分:1)

我相信您认为这些对象未初始化,因为您看到每个0 key/value pairs对象旁边都有User

您的代码看起来不错,我认为在您实施[NSObject description](或[NSObject debugDescription])之后情况会发生变化:

- (NSString *)description
{
    return [NSString stringWithFormat:@"cId=%@, firstName=%@, lastName=%@",
        _cId, _firstName, _lastName];
}