i'm trying init array of int in custom uiview:
var graphpoints:[int] required init?(coder adecoder: nscoder) { restapimanager.sharedinstance.requestdata() { (json: json) in item in json[].array! { let n=item["n"].intvalue print(n) if(n>=0) { self.graphpoints.append(n) } } } super.init(coder: adecoder) }
but int row restapimanager.sharedinstance.requestdata() {
reiceved error: 'self' used before super.init call
and @ row super.init(coder: adecoder)
error: property self.graphpoint not initialized @ super.init call
swift requires parameters initialized before calling super.init()
. there several ways make happen.
declare graphpoints empty initializer this:
var graphpoints:[int] = [] or var graphpoints = [int]()
you can change graphpoints optional, this:
var graphpoints:[int]?
you can leave declaration alone, , initialize empty array before calling super.init()
you need move restapi call below super.init call.
hope helps.