gpt4 book ai didi

swift - Swift 2 错误 : Cannot assign a value of type '[NSURL]' to a value of type '[NSURL]'

转载 作者:行者123 更新时间:2023-11-30 10:13:41 26 4
gpt4 key购买 nike

我有一个名为 downloadedPhotoURLs 的变量,其类型为 [NSURL]?

我正在尝试分配返回类型 [NSURL] 的函数的结果(非可选)。

我在分配时解开变量downloadedPhotoURLs!

我收到错误:

Cannot assign a value of type '[NSURL]' to a value of type '[NSURL]'

我不知道如何解决这个问题。

我正在使用 Xcode 7 beta(只是因为我必须能够在设备上运行它,但我有免费帐户)

do {
downloadedPhotoURLs! = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(directoryURL, includingPropertiesForKeys: nil, options: nil)
collectionView!.reloadData()
} catch _ {
downloadedPhotoURLs = nil
}

最佳答案

有两个问题...

强制解开downloadedPhotoURLs!

您不能以这种方式分配。如果变量类型是可选的,您将以常见的方式分配给它,就像如果它不是可选的,...

downloadedPhotoURLs = ...

当您确实想要读取/访问值时,可以使用展开 (!, ...)。当您确实想分配新值时则不然。您在线上做得正确:

downloadedPhotoURLS = nil

Swift 2.0 中的 OptionSetType

您不能在 options: 参数中传递 nil。该方法的签名是:

func contentsOfDirectoryAtURL(url: NSURL,
includingPropertiesForKeys keys: [String]?,
options mask: NSDirectoryEnumerationOptions) throws -> [NSURL]

并且 NSDirectoryEnumerationOptions 是:

struct NSDirectoryEnumerationOptions : OptionSetType {
init(rawValue: UInt)

static var SkipsSubdirectoryDescendants: NSDirectoryEnumerationOptions { get }
static var SkipsPackageDescendants: NSDirectoryEnumerationOptions { get }
static var SkipsHiddenFiles: NSDirectoryEnumerationOptions { get }
}

所以它应该看起来像:

downloadedPhotoURLs = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(NSURL(string: "")!,
includingPropertiesForKeys: nil,
options:NSDirectoryEnumerationOptions(rawValue: 0))

有关 OptionSetType 的更多信息(随 Swift 2.0 引入)。

关于swift - Swift 2 错误 : Cannot assign a value of type '[NSURL]' to a value of type '[NSURL]' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31459972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com