在iOS上创建键值存储数据库的一个示例是YapDatabase.
但是,我没有使用它的经验,并且想知道使用它是否值得,而不是像Core Data或FMDB那样.
我遇到的一个关键问题是:如何管理与此数据库的对象关系?
如果我可以避免对象关系,我正在寻找关于如何解决与另一个对象具有多对多关系的对象问题的建议或数据库设计技巧.
让我们考虑一个用例(这只是一个例子,以帮助解决这个问题):
sender <<->> message <<->> recipient
sender has a:
photo_data,
name,
gender,
age,
email,
username,
twitter_id,
facebook_id,
sender_id
recipient has a:
photo_data,
name,
gender,
age,
email,
username,
twitter_id,
facebook_id,
recipient_id
message has a:
text,
rich_text,
picture_data,
voice_data,
shared_url,
message_id
Run Code Online (Sandbox Code Playgroud)
我曾考虑使用message_id,sender_id和recipient_id来关联每个模型,但是有更好的方法吗?
我在这做错了什么?我错过了什么?
- (void)scheduleTimer
{
NSTimer *timer = [NSTimer timerWithTimeInterval:0.15
target:self
selector:@selector(wtf:)
userInfo:nil
repeats:NO];
// This works fine
// [[NSRunLoop currentRunLoop] addTimer:timer
// forMode:NSDefaultRunLoopMode];
// This doesn't work at all - how come?
[[NSRunLoop currentRunLoop] addTimer:timer
forMode:@"MyCustomRunLoopMode"];
}
- (void)wtf:(NSTimer *)aTimer
{
NSLog(@"wtf");
}
Run Code Online (Sandbox Code Playgroud)
NSRunLoop的文档似乎表明可以创建自定义的runloop模式.我错过了什么吗?
(这是Mac OS X中标准GUI应用程序的主线程)
更新:请注意,我提到这是在标准应用程序的主线程上.因此,我自己并没有运行runloop.这一切都由NSApplication处理.