我正在尝试在我的基于Swift的项目中使用RestKit。似乎我无法使用Swift原始数据类型,例如Int、Double、Bool等,除了String、Array和Dictionary(这可能是因为它们与NSString、NSArray和NSDictionary之间存在桥接)。
在Objective-C中,我可以将我的对象属性定义为原始数据类型,并进行分配。但在Swift中,我只能使用对象(String、NSNumber、Array、Dictionary),否则应用程序会崩溃并显示“setValue:forUndefinedKey:this class is not key value coding-compliant for the key aBool”。
例如: 以下是我的Objective-C对象的样子:
在Objective-C中,我可以将我的对象属性定义为原始数据类型,并进行分配。但在Swift中,我只能使用对象(String、NSNumber、Array、Dictionary),否则应用程序会崩溃并显示“setValue:forUndefinedKey:this class is not key value coding-compliant for the key aBool”。
例如: 以下是我的Objective-C对象的样子:
@interface TestObject : NSObject
@property (strong, nonatomic) NSString *aString;
@property (assign, nonatomic) BOOL aBool;
@property (assign, nonatomic) CGFloat aFloat;
@end
并且在Swift中的“等价物”:
class TestObject:NSObject {
var aString:NSString?
var aBool:Bool?
var aFloat:Double?
}
这个程序崩溃了,虽然我知道为什么它会崩溃,但我还是想知道是否有其他方法来解决问题,而不是像在Objective-C中使用NSNumber来处理布尔值、整数和浮点数一样的方法?
(如果RestKit的开发人员中有任何人阅读此内容:首先感谢你们的工作,然后:是否有关于支持Swift或将其移植到Swift的计划?)