无法将 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];
}
我一直坚持将 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];
}