ios - 无法将数据从 Swift 映射到 Objective-C 模型
问题描述
我正在尝试从 Swift 调用一个 api,我需要从 Objective-C 创建一个模型数据。但无法映射数据。
这是我的回应:
let busResponses = [
"ResponseStatus": [
"ResponseCode": "SUCCESS",
"ResponseMessage": "SUCCESS",
],
"ResponseData": [
"BusNo": "119",
"bookingId": "22654"
]
]
我正在调用 api 的快速课程:
当我在完成处理程序中调用我的 api 时,我这样写:
request.load(urlCache: nil) { [weak self] (apiResponse: [String:Any]?, error: Error?) ->Void in
}
apiResponse 是我从我的 api 调用中得到的响应。然后我从目标类映射到我的 BusResponse 模型。
let response: BusResponse? = BusResponse(value: piResponses)
completion(response, nil)
我的目标 c 模型类:
总线响应.h:
@interface ResponseData : BaseRealmUnique
@property NSString * BusNo;
@property NSString * bookingId;
@end
@interface ResponseStatus : BaseRealmUnique
@property NSString * ResponseCode;
@property NSString * ResponseMessage;
@end
@interface CheckInData : BaseRealmObject
@property ResponseStatus * ResponseStatus;
@property ResponseData * ResponseData;
@end
@interface CheckInResponse : BaseResponseBase
@property CheckInData *checkInData;
+ (NSURL *)url;
@end
总线响应.m:
#import "BusResponse.h"
@implementation CheckInData
@end
@implementation ResponseData
@end
@implementation ResponseStatus
@end
@implementation CheckInResponse
+ (NSURL *)url
{
return nil;
}
@end
我的主要疑问是,最初在调用 api 之后,我正在处理的响应为apiResponse: [String:Any]?
. 但是我的响应数据不一样。
所以我尝试使用硬编码响应并传递给let response: BusResponse? = BusResponse(value: piResponses)
. 在这里,当我打印我的回复时,它也为零。我想要我的busNo , BookingId
字符串值,带有响应代码,响应消息。
我做错了什么。任何帮助都会很棒。
解决方案
推荐阅读
- python - python plotly Treemap ids格式以及如何在树图中显示多个重复的标签?
- c# - Visual Studio MonoGame NuGet 包中是否不再包含 MonoGame 管道工具?
- r - R:如何按条件插入行?
- python-3.x - 当我运行 try 和 except 时,有没有办法摆脱语法错误?
- php - 如果 WP Admin 是子页面 A、子页面 B 或子页面 C,我如何才能运行一段代码?
- javascript - async/await 函数有奇怪的行为
- python - 为什么chrome可以存储这个会话数据而firefox不能?
- python - 尝试重命名文件时出现 Winerror 123
- javascript - 按钮事件监听器总是返回相同的值
- kubernetes - 跨多个 pod 将持久卷安装为 ReadOnlyMany 时出现问题