好吧,看起來好像SDK沒有提供任何我可以用來檢查EKEvent是否爲只讀的東西。我通過創建一個向所有EKEvent實例添加「isReadOnly」方法的類別創建了一個解決方法。
EKEvent + ReadOnlyCheck.h
@interface EKEvent(ReadOnlyCheck)
- (BOOL) isReadOnly;
@end`
EKEvent + ReadOnlyCheck.m
#import "EKEvent+ReadOnlyCheck.h"
@implementation EKEvent(ReadOnlyCheck)
- (BOOL) isReadOnly {
BOOL readOnly;
NSString *originalTitle = [self.title retain];
NSString *someRandomTitle = [NSString stringWithFormat:@"%i", arc4random()];
self.title = someRandomTitle;
readOnly = [originalTitle isEqualToString:self.title];
self.title = originalTitle;
[originalTitle release];
return readOnly;
}
@end
當上述文件是在地方,我可以簡單地調用isReadOnly
我選擇的EKEvent 。
#import "EKEvent+ReadOnlyCheck.h"
...
if ([event isReadOnly]) {
// Do your thing
}
...
我也經歷了文檔,這似乎是唯一的解決方案。 :-( – 2011-01-03 20:13:00
多年後,我們仍然有這個問題。例如(使用Exchange日曆),在iOS 6上設置標題似乎不起作用(意思是顯示爲已更改),但更改日期的工作原理(日期保持不變)。 – 2015-01-14 11:19:28