| tags:littlist objective-c develop categories:iapp
Reminderからの読込ではまる
ここ数日 littlist.2.6.5にReminderへの書込み・取込みの機能の追加作業をしていました。
見事にハマったのが、取込みの
- (id)fetchRemindersMatchingPredicate:(NSPredicate *)predicate completion:(void (^)(NSArray *reminders))
でのブロック処理。 完了時にリマインダーのリストが所得でき、そのリストをセーブすれば簡単なはず、、なのが、、なぜがしっかりと保存されていない。中途半端にブロックから出てきている模様。
いろいろと試し、ネットで探したところ、見つかりました。
// 事前に calendar の設定等をして、
__block NSArray *remindersToImport = nil;
__block BOOL fetching = YES;
NSPredicate *predicate = [eventStore predicateForRemindersInCalendars:@[calendar]];
[eventStore fetchRemindersMatchingPredicate:predicate completion:^(NSArray *ekReminders) {
LOG_METHOD;
remindersToImport = ekReminders;
fetching = NO;
}];
while (fetching) {
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.05]];
}
// 作業がつづく
と、while の所で、処理が終わるまで一服させ、作業を続ける形です。(何のためのブロック処理なのか意味が分かりませんし、こういうのはバグというのでは??)