ios - EKEvent eventIdentifier null xcode 9.4
问题描述
我正在使用 XCode 保存一个事件,它可以正常保存。保存也返回一个 ID。
当我尝试获取日历中的所有事件,然后一一访问事件的 id 时,它总是nil
保存代码:
-(NSNumber*) save:(id)arg
{
id val = nil;
ENSURE_ARG_OR_NIL_AT_INDEX(val, arg, 0, NSNumber);
EKSpan span = EKSpanThisEvent;
if (val != nil) {
span = [TiUtils intValue:val def:EKSpanThisEvent];
}
EKEventStore* ourStore = [module store];
if (ourStore == NULL) {
DebugLog(@"Could not save event, missing Event Store");
return NUMBOOL(NO);
}
EKEvent* currEvent = [self event];
if (currEvent == NULL) {
DebugLog(@"event is missing");
return NUMBOOL(NO);
}
__block NSError * error = nil;
__block BOOL result;
TiThreadPerformOnMainThread(^{
result = [ourStore saveEvent:currEvent span:span commit:YES error:&error];
}, YES);`enter code here`
if (result == NO || error != nil) {
[self throwException:[NSString stringWithFormat:@"Failed to save event : %@",[TiUtils messageFromError:error]]
subreason:nil
location:CODELOCATION];
}
return NUMBOOL(result);
}
检索代码:
- (NSArray *)_fetchAllEventsbetweenDate:(NSDate *)date1 andDate:(NSDate *)date2
{
if (![NSThread isMainThread]) {
__block id result = nil;
TiThreadPerformOnMainThread(^{
result = [[self _fetchAllEventsbetweenDate:date1 andDate:date2] retain];
},
YES);
return [result autorelease];
}
EKEventStore *ourStore = [self ourStore];
if (ourStore != nil) {
NSPredicate *predicate = [ourStore predicateForEventsWithStartDate:date1
endDate:date2
calendars:[NSArray arrayWithObject:[self calendar]]];
return [ourStore eventsMatchingPredicate:predicate];
}
return NULL;
}
解决方案
推荐阅读
- c++ - 是否可以在没有未定义行为的情况下在 C++ 中创建标记指针?
- php - 如何使用 eloquent 计算 laravel 中某个日期的工作时间?
- amazon-web-services - AWS ECS docker 容器 RDS 集成
- tensorflow - BERT + 自定义层训练性能随时期下降
- python - 如何解释 gensim 的 Word2vec 最相似方法的输出并了解它是如何得出输出值的
- tensorflow - 如何在不干扰其他优化器参数的情况下增加“tfa.optimizers.AdamW”的权重衰减
- guzzle - GuzzleHttp\Exception\ConnectException:使用 Google Cloud Speech PHP API 时出现 cURL 错误 28
- java - 用户输入后运行三角形代码
- android - 弃用 Gradle 功能,使其与 Gradle 7.0 不兼容
- flutter - 如何在 Flutter 中实现 Agora 云录制 api?