use*_*292 15 objective-c swift
我正在尝试将我的Objective-C转换为Swift - 这里的错误有点困惑以及如何处理它.我一直在阅读文档,但仍然感到困惑 - 这是从转换器生成的.有人有主意吗?
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
}
Run Code Online (Sandbox Code Playgroud)
vad*_*ian 27
在Swift init方法中没有func关键字,也没有返回值,调用super的点不同.
init() {
Run Code Online (Sandbox Code Playgroud)
首先初始化所有实例变量.
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
Run Code Online (Sandbox Code Playgroud)
然后调用super - 如果需要 - 来获取实例.
super.init()
Run Code Online (Sandbox Code Playgroud)
然后调用使用的方法 self
reqOperationManager.sharedManager().setDelegate(self)
Run Code Online (Sandbox Code Playgroud)
而已.
}
Run Code Online (Sandbox Code Playgroud)
在某些情况下,您必须先添加override关键字init().
有关更多详细信息,请阅读Swift语言指南中有关初始化的章节.这很值得.
| 归档时间: |
|
| 查看次数: |
7969 次 |
| 最近记录: |