У меня есть этот код в Swift 1.2:Swift 2 Тип литейные Словари
self.publicDatabase!.performQuery(query, inZoneWithID: nil) {
results, error in
if error != nil {
NotificationUtility.postNotification(Notify.CloudKitVenuesRetrieveFailed, userinfo: ["result":results, "error":error])
}
else
{
NotificationUtility.postNotification(Notify.CloudKitVenuesRetrieveSuccess, userinfo: ["result":results])
}
}
Но Swift 2.0 это дает несколько ошибок компилятора:
"Тип выражения является неоднозначным без больше контекста"
и
"Невозможно преобразовать значение типа '[String: [CKRecord]]' ожидаемого типа аргумента '[NSObject: AnyObject]?"
Я знаю, как это исправить, чтобы сделать ошибку уйти, но мне кажется, очень некрасиво и Hacky:
self.publicDatabase!.performQuery(query, inZoneWithID: nil) {
results, error in
if error != nil {
NotificationUtility.postNotification(Notify.CloudKitVenuesRetrieveFailed, userinfo: ["result":results as! AnyObject, "error":error as! AnyObject])
}
else
{
NotificationUtility.postNotification(Notify.CloudKitVenuesRetrieveSuccess, userinfo: ["result":results as! AnyObject])
}
}
Есть ли лучший способ, чем того, чтобы пройти через каждый пункт в словаре и заставить подавленным его на «AnyObject»?