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

Can't write NSDictionary parameters into custom Object

我一直坚持将 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 在我调用与字典中的键相同的变量后没有任何改变。

添加 mUsers 后:

谁能告诉我我做错了什么?谢谢!

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

您的代码看起来不错,我认为一旦您像这样实现 [NSObject description](或 [NSObject debugDescription]),事情就会发生变化:

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