我有各種屬性的swift類,其中一些屬性具有可選類型。無法在Swift中將自定義設置爲無可選屬性
class UserObject: PFUser{
//optional property
var optionalPhotoURL:String? {
get {
if let optionalPhotoURL:String = objectForKey("optionalPhotoURL"){
return optionalPhotoURL
}
//not needed but just for emphasis
return nil
}
//I am unable to set UserObject.optionalPhotoURL = nil with this setters
set {
if let newPhotoURL:String = newValue! {
setObject(newPhotoURL, forKey: "optionalPhotoURL")
}else{
self.optionalPhotoURL = nil
}
}
}
}
我無法設置optionalPhotoURL爲零,如果它已經有一個先前的值分配給它。
我想我的問題是,我如何「取消」與自定義setter的可選屬性?
更新
這些制定者都崩潰
set {
if let newPhotoURL:String = newValue {
setObject(newPhotoURL, forKey: "optionalPhotoURL")
}else{
self.optionalPhotoURL = nil
}
}
這
set {
if (newValue != nil) {
setObject(newValue!, forKey: "optionalPhotoURL")
}else{
self.optionalPhotoURL = nil
}
}
你確定它會進入else語句嗎? – lascort
newValue是swift如何調用正在設置的newValue,除非命名var被定義爲set(somevar){} – stone
依賴'setObject(forKey :)'有很多問題...... – nhgrif