iOS - FCModel - 不传递空值时保存模型时出错

标签 ios fmdb

我正在使用 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/

相关文章:

ios - 未知属性属性 'atomic'

ios - FMDB 和加密

ios - 项目目录下的SQLite文件,使用fmdb打开失败

ios - NSPredicate 与 NSNumbers 的 NSArray(核心数据)

ios - Swift FMDB 代码说明

iOS MVC 设计模式 - REST 资源模型和 View Controller 之间的层

ios - 使用 Swift 以编程方式加载图像

ios - fmdb 路径并从另一个 viewController 第二次使用 db

ios - 如何在 Swift 中子类化结构?

IOS 7 顶部和底部的黑条(仅运行 3.5)