iOS: setter 在对象 class 中带有外部参数

iOS: setter in an object class with external parameter

我有这个对象class

class City {

    var name:String
    init(name: String) {
        self.name = name
    }

    var video:String?
    var description:String?
    var image_array:NSArray?
}

在这个 class 中有一个名为 image_array 的 属性,我想给它分配一个 NSArray,如您所见。 但在这种情况下,我必须在此 属性 传递一个 String ,我应该将其转换为数组

示例:

The string is "img1.jpg,img2.jpg,img3.jpg"

然后我用

let fullNameArray = fullName.componentsSeparatedByString(",")

我得到一个 NSArray

那么如何将这个String传递给City对象中的setter for image_array呢? 然后在setter里面把它转化成一个数组...希望看得清楚

你不会,你需要 1. 将它转换成一个数组然后传递它,或者 2. 添加一个不同的方法,它接受一个字符串,转换它然后调用数组 setter .

选项 1 更好,因为它维护了一个健全的界面,并且不会用其他 classes.

的 crud 污染 class 界面

如果您真的想这样做以便从数组中写入字符串,请使用

var myString:String = array.description.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: "[]"))

并从字符串中取回数组

var array:[String] = myString.componentsSeparatedByString(", ") //dont forget space character