सरल चीज जो मुझे सिरदर्द दे रही है - किसी ऑब्जेक्ट को प्रारंभ करने के लिए कैसे मैप करने योग्य प्रोटोकॉल के अनुरूप है, बिना किसी JSON के।ऑब्जेक्टमैपर - ऑब्जेक्ट IOS
मैं करना चाहते हैं क्या, बस इस तरह कोड में खाली उपयोगकर्ता वस्तु आरंभ है:
let user = User()
लेकिन है कि मुझे त्रुटि देता है:
"लापता कॉल में # 1 पैरामीटर के लिए तर्क" मैं इसे स्विफ्ट 1.2 के साथ संस्करण 0.14 में करने में सक्षम था, लेकिन अब यह काम नहीं करता है। क्या आप लोग जानते हैं कि अब इसे स्विफ्ट 2 और नया ऑब्जेक्ट मैपर में कैसे करें? (मुझे पता है कि json आदि के साथ यह प्रारंभ करने में, मैं सिर्फ अन्य प्रयोजनों के लिए उस वस्तु को प्रारंभ करना चाहते हैं और मैं यह पता लगाने की कैसे नहीं कर सकते)
class User: Mappable {
var username: String?
var age: Int?
var weight: Double!
var array: [AnyObject]?
var dictionary: [String : AnyObject] = [:]
var bestFriend: User? // Nested User object
var friends: [User]? // Array of Users
var birthday: NSDate?
required init?(_ map: Map) {
}
// Mappable
func mapping(map: Map) {
username <- map["username"]
age <- map["age"]
weight <- map["weight"]
array <- map["arr"]
dictionary <- map["dict"]
bestFriend <- map["best_friend"]
friends <- map["friends"]
birthday <- (map["birthday"], DateTransform())
}
}
कृपया मदद!
2 त्रुटियों: ओवरराइड init पर() "Initilaizer अपने सुपर क्लास से एक नामित प्रारंभकर्ता पर हावी नहीं होता", अगले self.init पर त्रुटि() -> "प्रकार का मूल्य '_ -> _" कोई सदस्य नहीं है "init" – Ammo
मेरे पास ऐसी त्रुटियां नहीं हैं। पॉड' ऑब्जेक्टमैपर ',' ~> 1.0 '; स्विफ्ट 2.1। आप ओवरराइड init() {super.init()} को हटाने का प्रयास कर सकते हैं। –
@ सेर्गेडी डेमचेन्को मुझे एएमओ और हटाने के समान त्रुटि मिली ओवरराइड init() उद्देश्य को हरा देता है। ऑब्जेक्टमैपर 1.2 स्विफ्ट 2.2 – Questioner