0

xCode 7 beta2 + Swift 2.0 をインストールしたので、アプリでエラーが発生します。たとえば、次のエラーが表示されます

「タイプ '(EKEntityType、完了: (Bool、NSError!) -> _)' の引数リストで 'requestAccessToEntityType' を呼び出すことはできません」

コードのこの部分で:

eventStore.requestAccessToEntityType(EKEntityType.Event,
    completion: {(granted: Bool, error:NSError!) in
            if !granted {
                print("Access to store not granted")
            }
    })

また、このエラー:

タイプ '(NSDate, endDate: NSDate, calendars: [AnyObject])' の引数リストで 'predicateForEventsWithStartDate' を呼び出すことはできません

コードのこの部分で:

calendarsPrueba.addObject(calendarWithName("US Holidays")!)
var predicate2 = eventStore.predicateForEventsWithStartDate(startDate, endDate: endDate, calendars: calendarsPrueba as [AnyObject])

誰かがこの問題を解決する方法を知っていますか? これに関するAppleのドキュメントはありません

4

2 に答える 2

2

@HAS と同じ質問 - 移行ツールを実行しましたか? Swift 1.2 と Swift 2.0 の間の互換性のない変更が多数あります。コードを移行するか、手動で修正する必要があります。

requestAccessToEntityType

エラー ...

タイプ「(EKEntityType、完了: (Bool、NSError!) -> _)」の引数リストで「requestAccessToEntityType」を呼び出すことはできません

(Bool, NSError!) -> Void...あなたのタイプがの代わりにあるのでそこにあります(Bool, NSError?) -> Void。に置き換えNSError!NSError?修正します。

ドキュメントを確認してください。署名は次のとおりです。

typealias EKEventStoreRequestAccessCompletionHandler = (Bool, NSError?) -> Void

predicateForEventsWithStartDate

タイプ '(NSDate, endDate: NSDate, calendars: [AnyObject])' の引数リストで 'predicateForEventsWithStartDate' を呼び出すことはできません

署名は次のとおりです。

func predicateForEventsWithStartDate(_ startDate: NSDate,
  endDate endDate: NSDate,
  calendars calendars: [EKCalendar]?) -> NSPredicate

あなたの代わりにas [AnyObject]合格しようとしています。これを修正するには、次のように宣言します。[AnyObject][EKCalendar]calendarsPrueba

var calendarsPrueba: [EKCalendar]

にキャストしないでください[AnyObject]

誰かがこの問題を解決する方法を知っていますか? これに関するAppleのドキュメントはありません

がある。すべての変更の概要が記載されているリリース ノートを必ずお読みください。そして、ドキュメントを再確認してください。私が書いたように、Swift 1.2 と Swift 2.0 の間で多くの重要な変更点を見つけることができるからです。

于 2015-07-03T14:17:16.630 に答える