我有一些看起来像这样的快速代码:
class GeoRssItem
{
var title = ""
var description = ""
}
在另一个类中,我将此变量声明为:
var currentGeoRssItem : GeoRssItem? // The current item that we're processing
我将此成员变量分配为:
self.currentGeoRssItem = GeoRssItem();
然后当我尝试在self.currentGeoRssItem上分配一个属性时,Xcode自动完成此操作:
self.currentGeoRssItem.?.description = "test"
然后失败并出现构建错误:
"Expected member name following '.'"
如何设置此属性?我已经阅读了文档,但它们并没有很大的帮助。
答案 0 :(得分:1)
问号出错了。应该是:
self.currentGeoRssItem?.description = "test"
但是你可能得到:"Cannot assign to the result of this expression"
。
在这种情况下,您需要检查nil,如下所示:
if let geoRssItem = self.currentGeoRssItem? {
geoRssItem.description = "test"
}
答案 1 :(得分:0)
如果你想声明该值是非零的,你可以这样做:
self.currentGeoRssItem!.description = "test"
如果您希望语句为no-op,如果变量为nil,那么
self.currentGeoRssItem?.description = "test"