この方のライブラリが個人的には使いやすかったので紹介。
ライセンスはMIT。
ソース公開なので何かあっても自分でなんとかできるのがおすすめ。
素敵なライブラリをありがとうございます。
以前はここに書かれているサンプル通りで動いたのですが現在は動きません。
原因はKey-Value Coding (KVC)がうまく動かないため。
探し方が悪いらしく解決策を見つけられなかったので少し特殊な方法で解決しました。
もっといい方法があるよって方はお教えください。
問題はモデルクラスの作り方です。
サンプルでは
#import <Foundation/Foundation.h>
#import “TSSqlite.h”
@interface AppBook : TSModel
@property (retain,nonatomic) NSNumber *indexNo;
@property (retain,nonatomic) NSString *name;
@property (retain,nonatomic) NSString *author;
@property (retain,nonatomic) NSNumber *year;
@end
#import “AppBook.h”
@implementation AppBook
@dynamic indexNo;
@dynamic name;
@dynamic author;
@dynamic year;
@end
この様に定義するのですがこのままだと
AppBook *appBook;
NSLog(@”index=%i”, appBook.indexNo);
のように参照するとKVCが働かず、@dynamic indexNo;で作られたインスタンスを表示してしまいいつも0やnullになってしまいます。
これを次の様に継承定義すると一応使える様になるのでこれでごまかしていますw
#import <Foundation/Foundation.h>
#import “TSSqlite.h”
@interface OrgAppBook : TSModel
@property (retain,nonatomic) NSNumber *indexNo;
@property (retain,nonatomic) NSString *name;
@property (retain,nonatomic) NSString *author;
@property (retain,nonatomic) NSNumber *year;
@end
#import “OrgAppBook.h”
@implementation OrgAppBook
@dynamic indexNo;
@dynamic name;
@dynamic author;
@dynamic year;
@end
#import “OrgAppBook.h”
@interface AppBook : OrgAppBook
@end
#import “AppBook.h”
@implementation AppBook
@end
難しい定義には向かないけどCoreDataを使うほどではない場合に有効だと思います。