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

标签 ios objective-c parsing object nsdictionary

我一直坚持将 NSDictionary 写入对象进程,我确信这个问题和我想象的一样简单,但如果能得到助手就太好了。这是我的代码:

我的自定义对象:

@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

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

最佳答案

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

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

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

关于ios - 无法将 NSDictionary 参数写入自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35890502/

相关文章:

ios - Firebase 不显示通知

ios - 将图像添加到 CAShapeLayer Swift 3

string - 解析文本最快的方法是什么?

ios - 如果我想制作自定义导航栏 View ,是否需要嵌入导航 Controller ?

ios - React Native OneSignal 访问启动应用程序启动的推送通知

ios - 仅从服务器获取已更改的 SQL 结果

objective-c - OSX 上的 IBOutletCollections 和 Interface Builder

objective-c - 忍者我的应用程序 : Duplicate symbol

parsing - Go: time.Parse() 问题

c - 在 C 中手动解析 JSON 消息