如何为Swift中另一个类的属性分配字符串值?

时间:2014-06-13 14:08:46

标签: swift

我有一些看起来像这样的快速代码:

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 '.'"

如何设置此属性?我已经阅读了文档,但它们并没有很大的帮助。

2 个答案:

答案 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"