0

我将我的 Swift 1.2 项目更新为 Swift 2.1(安装 Xcode 7.1)。现在我得到2个错误。

第一个错误:

Downcast from 'NSURL?' to 'NSURL' only unwraps optionals; did you mean to use '!'?

在这行代码中:

let documentsDirectory = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).last as! NSURL

第二个错误:

Cannot convert value of type 'Set<NSObject>' to expected argument type 'Set<UIUserNotificationCategory>?'

在这行代码中:

application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: NSSet(array: [todoCategory]) as! Set<NSObject> as Set<NSObject>))

你知道如何解决吗?

4

1 回答 1

1

删除铸件后,第一个错误已修复。但是,谁可能想检查 documentDirectory 是否不为零,因此您可以将其放入if let

if let documentsDirectory = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).last {
    // do something with the documents directory
}

第二个错误可以这样修复:

application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: Set<UIUserNotificationCategory>.init(arrayLiteral: todoCategory)))
于 2015-10-28T17:33:12.873 回答