在 Swift 中使用 NSNumber numberWithBool

Using NSNumber numberWithBool in Swift

我提交了我的应用程序的第 2 版以供审核,但由于对 iCloud 的高备份而被拒绝 - 我不知道这一点,因为我只需要在我的应用程序中添加图片,但无论如何。现在我尝试转换该代码

NSError *error = nil;
    NSURL *databaseUrl = [NSURL fileURLWithPath:databasePath];
    BOOL success = [databaseUrl setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&error];
    if(!success){
    NSLog(@"Error excluding %@ from backup %@", [databaseUrl lastPathComponent], error);
    }

到 swift 我无法让它工作... 这是我目前所拥有的...

func excludeFromBackup() {
    var error:NSError?
    var fileToExclude = NSURL.fileURLWithPath("path")
    var success:Bool = fileToExclude?.setResourceValue(NSNumber.numberWithBool(true), forKey: NSURLIsExcludedFromBackupKey, error: &error)
    if success {
        println("worked")
    } else {
        println("didn't work")
    }
}

如您所见,我的 numberWithBool 值失败了。

谁能帮帮我?有人转换过吗?

提前致谢...

我整理好了...这是解决方案。

func excludeFromBackup(path:String) {
        var error:NSError?
        var fileToExclude = NSURL.fileURLWithPath(path)!
        var success:Bool = fileToExclude.setResourceValue(NSNumber(bool: true), forKey: NSURLIsExcludedFromBackupKey, error: &error)
        if success {
            println("worked")
        } else {
            println("didn't work")
        }
    }

现在一切正常。

还是谢谢...

某些 Swift 类型(IntBoolString、...)是自动 桥接到相应的 Objective-C 类型,所以你可以简单地写:

let success = fileToExclude.setResourceValue(true, forKey: NSURLIsExcludedFromBackupKey, error: &error)

Working with Cocoa Data Types 中有更多详细信息。)