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
我有这个对象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