2

我有一个通用的 iOS 应用程序,努力使其与 iOS 6 兼容。我正在使用 Cordova / Phonegap 框架,所以我的应用程序是 HTML、CSS 和 JS。我正在使用 GitHub 上提供的用于 Cordova 的 calenderPlugin,在 iOS 6 之前运行良好。

问题从这里开始:Apple 补充说,从 iOS 6 开始,在对日历和提醒进行任何操作之前,我们需要授予用户权限。这是示例代码:

EKEventStore    *eventStore = [[EKEventStore alloc] init];

if( [self checkIsDeviceVersionHigherThanRequiredVersion:@"6.0"] ) {

[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {

if (granted){
//---- codes here when user allow your app to access theirs' calendar.

}else
{
//----- codes here when user NOT allow your app to access the calendar.

}

:
:
}];

}


//**********************************************************************************

//   Below is a block for checking is current ios version higher than required version.

//**********************************************************************************

- (BOOL)checkIsDeviceVersionHigherThanRequiredVersion:(NSString *)requiredVersion
{
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];

if ([currSysVer compare:requiredVersion options:NSNumericSearch] != NSOrderedAscending)
{
return YES;
}

return NO;
}

当然我已经添加了 EventKit.Framework 和 EventKitUI.Framework。现在的事情是,为了开发 iOS 6,我下载并安装了 iOS6 SDK 附带的 xCode 4.5。

xCode 没有找到这个方法 requestAccessToEntityType,也没有常量 EKEntityTypeEvent 可用。

看来我缺少适用于 iOS 6 的 EventKit.Framework,但是如何呢?我有适用于 iOS 6 的 SDK 附带的 xCode 4.5。有什么建议吗?

4

2 回答 2

2

问题已解决,

我通过右键单击项目下的框架并将文件添加到项目中添加了 EventKit.framework。这些框架适用于 iOS 5。要添加适用于 iOS 6 的框架,首先我从框架文件夹中删除了这些框架,然后转到 Targets > Summary > Linked Frameworks and Libraries。在那里我按下 + 并添加了出现在 iOS 6 文件夹下的 EventKit.framework。干杯:-) 快乐编码。

于 2012-09-25T06:58:12.007 回答
0

检查您的 BaseSDK,因为我在 XCode4.5 和 iOS6 SDK 中使用它没有问题。我通过 App Store 升级我的 XCode 4.5,而不是从开发站点升级。

于 2012-09-24T20:32:07.313 回答