我正在使用 FCModel用于在 iOS 应用程序上维护数据库。当我尝试在不传递任何值或 nil 值的情况下保存模型对象并保存对象时,它会产生 NSUnknownKeyException。
这是我的客户模型界面:
@interface Customer : FCModel
@property (nonatomic) int64_t id;
@property (nonatomic) NSNumber *age;
@property (nonatomic) NSString *profession;
@property (nonatomic) NSString *first_name;
@property (nonatomic) NSString *last_name;
@end
建表语句:
if (! [db executeUpdate:
@"CREATE TABLE IF NOT EXISTS CUSTOMER ("
@"id INTEGER PRIMARY KEY,"// 0: id
@"age INTEGER," // 1: server_id
@"'profession' TEXT," // 2: c_id
@"'first_name' TEXT," // 3: first_name
@"'last_name' TEXT);" // 4: last_name
]) failedAt(1);
这是初始化和保存部分:
Customer *customer = [Customer new];
[customer initWithNil];
customer.first_name = @"first_name";
customer.last_name = @"last_name";
[customer save];
我无法弄清楚为什么它会为允许为空的列提供 NSUnknownKeyException。我也尝试将它们作为 nil 传递,但这也不起作用。
编辑:我在 FCModel encodedValueForFieldName 方法中添加了一个日志,发现 fieldName 为空。不确定这是否是正确的行为。
最佳答案
这个问题提了快一年了,难道是create语句不完整?删除 Objective-C 和注释留给你:
CREATE TABLE IF NOT EXISTS CUSTOMER (
id INTEGER PRIMARY KEY,
age INTEGER,
'profession' TEXT,
'first_name' TEXT,
'last_name' TEXT,
也许您打算在最后关闭它。
'last_name' TEXT);
关于iOS - FCModel - 不传递空值时保存模型时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25038276/