首页 > 解决方案 > JSONMedel 库中的模型级联不起作用

问题描述

我正在使用 JSONModel 库从我的项目的 API 响应中创建模型。我正在尝试访问 userDetails.user.firstName ,其中 userDetails 的类型为 LoginModel ,这是它的 .h 文件:

 #import <JSONModel/JSONModel.h>

 @interface UserModel : JSONModel
 @property (nonatomic) NSInteger userId;
 @property (nonatomic) NSString *firstName;
 @property (nonatomic) NSString *lastName;
 @property (nonatomic) NSString *email;
 @property (nonatomic) NSURL <Optional> *profilePictureUrl;
 @property (nonatomic) BOOL tosSigned;
 @property (nonatomic) BOOL emailVerified;
 @property (nonatomic) NSDate *createdAt;
 @property (nonatomic) NSArray *activePromos;
 @property (nonatomic) BOOL hasPaymentSource;
 @property (nonatomic) NSDictionary *emergencyContact;
 @property (nonatomic) NSString *referralCode;
 @property (nonatomic) float balance;

 @end

 @interface LoginModel : JSONModel

 @property (nonatomic) NSInteger expiresIn;
 @property (nonatomic) NSString *accessToken;
 @property (nonatomic) NSString *refreshToken;
 @property (nonatomic) UserModel *user;

 @end

但是,每次我尝试访问 UserModel 的元素时,都会引发以下错误:

[__NSDictionaryI firstName]:无法识别的选择器发送到实例 0x7f8fab61f430。这是我需要通过模型类访问的 API 响应示例:

{"expiresIn": 900000,
"accessToken": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMDg2ODI3ODg2IiwiYWNjb3VudFR5cGUiOiJjdXN0b21lciIsImlhdCI6MTUzNjU4MzAyNiwiZXhwIjoxNTM2NTg2NjI2LCJhdWQiOiJodHRwczovL2c0bmlvYjFlZ2wuZXhlY3V0ZS1hcGkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vbGF0ZXN0IiwiaXNzIjoicG9waW4ubnljIiwic3ViIjoiMTA4NjgyNzg4NiJ9.qK_GYoPgRDnrrp3zrsWMZuPxJi1T3O-9lAPwbYdwtccJ63cTPBSTlWlbpuYMJXRRLEu371xfzBbImb-6I-8sxQ",
"refreshToken": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMDg2ODI3ODg2IiwiYWNjb3VudFR5cGUiOiJjdXN0b21lciIsImlhdCI6MTUzNjU4MzAyNiwiZXhwIjoxNTY4MTQwNjI2LCJhdWQiOiJodHRwczovL2c0bmlvYjFlZ2wuZXhlY3V0ZS1hcGkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vbGF0ZXN0IiwiaXNzIjoicG9waW4ubnljIiwic3ViIjoiMTA4NjgyNzg4NiJ9.xIjuj87dVs5BMJOLKoh47Vx7RXVcSiPb6hGIzdbVWlrYa6gNh7s1wlQOy9U44PJ7hUCUPYHc8V7i4TVD7mtC2A",
"user": {
    "userId": "1086827886",
    "firstName": "JP",
    "lastName": "Kocher",
    "email": “********”,
    "profilePictureUrl": null,
    "tosSigned": false,
    "emailVerified": true,
    "createdAt": "2018-09-04T14:21:22.486Z",
    "activePromos": [],
    "hasPaymentSource": false,
    "emergencyContact": {},
    "balance": 0,
    "referralCode": "jpk6334"
}}

请帮忙。

标签: iosobjective-cjsoncascadingjsonmodel

解决方案


推荐阅读