| categories:littlist objective-c develop

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 の所で、処理が終わるまで一服させ、作業を続ける形です。(何のためのブロック処理なのか意味が分かりませんし、こういうのはバグというのでは??)

comments powered by Disqus