Reputation: 305
I'm trying to convert over my Objective-C to Swift - a little confused on the error here and how to take care of it. I've been reading through the documentation but still confused - this was generated from a converter. Anyone have any ideas?
Objective-C
- (id) init
{
self = [super init];
if (!self)
return nil;
self.cmRequestsQuery = [[NSMutableArray alloc] initWithCapacity:5];
self.cmQueryIsRuning = NO;
self.requestCounter = 0;
self.serverOfflineOrBadResponse = NO;
self.userWasLoggedIn = NO;
self.needToSendPushNotiToken = NO;
self.noInternetConection = NO;
self.needToUpdateToken = NO;
[[reqOperationManager sharedManager] setDelegate:self];
return self;
}
Swift
func init() -> AnyObject {
self = super()
if !self {
return nil
}
self.cmRequestsQuery = NSMutableArray(capacity: 5)
self.cmQueryIsRuning = false
self.requestCounter = 0
self.serverOfflineOrBadResponse = false
self.userWasLoggedIn = false
self.needToSendPushNotiToken = false
self.noInternetConection = false
self.needToUpdateToken = false
reqOperationManager.sharedManager().setDelegate(self)
return self
}
Upvotes: 15
Views: 10474
Reputation: 1537
I had this problem because I was trying to import the swift header (import "ProjectName-swift.h") in my swift class.
Upvotes: 0
Reputation: 285079
In Swift init
methods have no func
keyword and no return value and the point to call super is different.
init() {
First initialize all instance variables.
self.cmRequestsQuery = NSMutableArray(capacity: 5)
self.cmQueryIsRuning = false
self.requestCounter = 0
self.serverOfflineOrBadResponse = false
self.userWasLoggedIn = false
self.needToSendPushNotiToken = false
self.noInternetConection = false
self.needToUpdateToken = false
Then call super – if required – to get the instance.
super.init()
Then call the methods which use self
reqOperationManager.sharedManager().setDelegate(self)
That's it.
}
In some cases you have to add the override
keyword before init()
.
For more details please read the chapter about Initialization in the Swift Language Guide. It's worth it.
Upvotes: 27