我是 XCode 和 Swift 的新手。尝试在 OS X 应用程序中简单地在我的 View 中设置图像。图像应该从网络加载,但我认为这并不重要。
我创建了一个新的 Cocoa 应用程序,有一个可以运行的 ListView 。在列表行的 XIB 中,我放置了一个“ ImageView ”元素,这样我就可以在每行中显示静态图像。
现在我想在行加载时更改图像 URL。我将线条从图像拖到我的 Controller 类,这将 @IBOutlet
添加到代码中。
这是我的 Controller 类代码:
import Cocoa
class ListRowViewController: NSViewController {
@IBOutlet weak var rowImage: NSImageView!
override var nibName: String? {
return "ListRowViewController"
}
override func loadView() {
super.loadView()
var url = NSURL(fileURLWithPath: "http://example.com/some-image.png")
var image = NSImage(byReferencingURL: url!)
self.rowImage.image(image)
}
}
现在,最后一条语句 (self.rowImage.image(image)
) 中的非常有趣令人沮丧的错误消息是
Cannot convert the expression's type 'NSImage' to type 'NSImage?'.
好的。这是什么意思以及如何解决它?这与选项有某种关系吗?我尝试了 ?
和 !
,但无法弄清楚 XCode 对我的期望。
最佳答案
NSImageView
的
image
是一个属性,您可以直接分配给它。
self.rowImage.image = image
并且,您的 URL 错误 NSURL(fileURLWithPath:)
用于本地文件。请改用 NSURL(string:)
。
var url = NSURL(string: "http://example.com/some-image.png")
关于xcode - Swift:如何更改 NSImage 图像源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774574/