我是新来的,我不明白如何初始化一个类.
成功在类定义中初始化为false
if (succeeded && (time>1000)){ errormessage += ";connection slow" }
时间初始化为
time = data[3].toInt()
数据在哪里
var data = split(raw_data) {$0 == ","}
而raw_data是一个字符串.
类定义:
class geocodeObject: NSObject {
init定义:
init(lat: String,long:String,userstate:String) {
(没有任何类型的超级init)
编辑:完整的代码与事情削减的方式
class geocodeObject: NSObject { //A type to store the data from the Reverse Geocoding API //Not a retriever //Options let API_KEY_TEXAS = "9e4797c018164fdcb9a95edf3b10ccfc" let DEV_MODE = true //Loading status var succeeded = false var errormessage = "Not Initalized" //Not nesscarilly a failure,Could be slow connection var loadstate: String? //Most important info var street: String?; var housenumber: String?; var city: String?; var zip: String? //Metadata var time: IntegerLiteralType?; var statuscode: String?; var queryid: String?; var zip4: String? //Other geographical data var entirestreet: String?; var state: String? init(lat: String,userstate:String) { //userstate: State provided by user //state: State provided by Reverse Geocoder var url: String? var extra: String? if DEV_MODE{ extra = "¬Store=true" } else{ extra = "" } url = "http://geoservices.tamu.edu/Services/ReverseGeocoding/WebService/v04_01/HTTP/default.aspx?lat="+lat+"&lon="+long+"&apikey="+API_KEY_TEXAS+"&version=4.01" if (userstate == "nil"){ url = url! + extra! println("if") } else{ url = url! + "&state="+state!+extra! println("else") } let raw_data = retrieveurl(url!) var data = split(raw_data) {$0 == ","} //data[1] is API version used. statuscode = data[0]; queryid = data[2]; time = data[3].toInt(); entirestreet = data[4]; city = data[5] state = data[6]; zip = data[7]; zip4 = data[8] //Do street,housenumber,errormessage,succeeded if (state != userstate){ println("user state not equal to state") } var splittedstreet = split(entirestreet!){$0 == " "} housenumber = splittedstreet[0] street = splittedstreet[1] println(statuscode) //Error message handling switch String(statuscode!){ case "200": errormessage = "Success" case "400": errormessage = "UnkNown API key error" case "401": ... //Time handling if (succeeded && (time>1000)){ errormessage += ";connection slow" } } println("/GeocodingAPIWrapper.swift/.geocodeObject.init: Not Implemented") }
}
这是一段时间,但我发现的答案是你应该添加super.init()作为你的init块中的第一行
init(lat: String,userstate:String) { super.init() ...
这样我就摆脱了它,并且满足了错误的要求.据了解,这是您的变量在NSObject.init()中初始化,因此您可以在自定义init(_)块中使用分配的值
原文地址:https://www.jb51.cc/swift/318916.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。