'self' used before super.init call
class, super, swift
Solution
It had been a while but the answer I found is that you should add super.init() as the first line inside your init block
init(lat: String,long:String,userstate:String) {
super.init()
...
This way I got rid of it and fulfills what the error is asking for. As I understand this is that your variables are initialized during NSObject.init() so you can use assigned values inside your custom init(_) block
Problem
I'm new to swift and I don't understand how to initialize a class. Succeeded is initialized in the class definition as `false` ``` if (succeeded && (time>1000)){ errormessage += ";connection slow" } ``` Time is initialized as ``` time = data[3].toInt() ``` Where data is ``` var data = split(raw_data) {$0 == ","} ``` And `raw_data` is a string. Class Definition: ``` class geocodeObject: NSObject { ``` `init` definition: ``` init(lat: String,long:String,userstate:String) { ``` (no super init of any kind) Full code with things cut way: ``` 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,long: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") } } ```