iOS 的 JsonModel 有什么问题
What's wrong with JsonModel for iOS
这之前对我有用,但突然停止了。
我有一个对象 Coupon
被 JSONModel
很好地解析了,事实上这个对象不是空的,但是当我转换一些属性时,例如 coupon.title
我得到了这个错误。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary title]: unrecognized selector sent to instance 0x7f8510645ba0'
为什么会这样?
谢谢。
这是我的对象:
#import "JSONModel.h"
@protocol Coupon
@end
@interface Coupon : JSONModel;
@property (assign, nonatomic) NSString* title;
@property (strong, nonatomic) NSString* subtitle;
@property (strong, nonatomic) NSString* text;
@end
和 json:
{
"subtitle":"ENDOR",
"title":"This IS THE OBJECT 1",
"text":"And this is the text of the coupon!!!"
}
您没有保留标题中的字符串属性;您应该查阅 Apple 内存管理文档:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html
尝试使用 copy
@属性 属性保持数据可用:
@interface Coupon : JSONModel;
@property (copy, nonatomic) NSString* title;
@property (copy, nonatomic) NSString* subtitle;
@property (copy, nonatomic) NSString* text;
@end
这里有更多信息Objective-C declared @property attributes (nonatomic, copy, strong, weak)
如果你不确定,如果你再收到 JSON 数据,你可以用这种代码调试它:
// In case JSON parsing was successful:
NSLog(@"%@", json);
// In case JSON parsing failed:
NSLog(@"%@", [[NSString all] initWithData:json encoding:NSUTF8StringEncoding]);
好吧,问题出在我安装的 Pod 中,特别是 this bug。
发现这个问题,试图找出我自己的问题。
就我而言,问题是:
@property (assign, nonatomic) NSString* title;
对比
@property (strong, nonatomic) NSString* title;
Marin Todorov 是对的,但我花了一段时间才明白它失败的原因。库丢失了引用,后来,当试图获取值时,它无法解析数据。
这之前对我有用,但突然停止了。
我有一个对象 Coupon
被 JSONModel
很好地解析了,事实上这个对象不是空的,但是当我转换一些属性时,例如 coupon.title
我得到了这个错误。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary title]: unrecognized selector sent to instance 0x7f8510645ba0'
为什么会这样? 谢谢。
这是我的对象:
#import "JSONModel.h"
@protocol Coupon
@end
@interface Coupon : JSONModel;
@property (assign, nonatomic) NSString* title;
@property (strong, nonatomic) NSString* subtitle;
@property (strong, nonatomic) NSString* text;
@end
和 json:
{
"subtitle":"ENDOR",
"title":"This IS THE OBJECT 1",
"text":"And this is the text of the coupon!!!"
}
您没有保留标题中的字符串属性;您应该查阅 Apple 内存管理文档:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html
尝试使用 copy
@属性 属性保持数据可用:
@interface Coupon : JSONModel;
@property (copy, nonatomic) NSString* title;
@property (copy, nonatomic) NSString* subtitle;
@property (copy, nonatomic) NSString* text;
@end
这里有更多信息Objective-C declared @property attributes (nonatomic, copy, strong, weak)
如果你不确定,如果你再收到 JSON 数据,你可以用这种代码调试它:
// In case JSON parsing was successful:
NSLog(@"%@", json);
// In case JSON parsing failed:
NSLog(@"%@", [[NSString all] initWithData:json encoding:NSUTF8StringEncoding]);
好吧,问题出在我安装的 Pod 中,特别是 this bug。
发现这个问题,试图找出我自己的问题。
就我而言,问题是:
@property (assign, nonatomic) NSString* title;
对比
@property (strong, nonatomic) NSString* title;
Marin Todorov 是对的,但我花了一段时间才明白它失败的原因。库丢失了引用,后来,当试图获取值时,它无法解析数据。