我正在尝试将 swift 代码转换为 Objective C ,因为 swift 自己处理错误,所以我对这里的转换有点困惑,这是 swift 代码:
func connectionDidFinishLoading(connection: NSURLConnection){
DictonaryData = (try! NSJSONSerialization.JSONObjectWithData(main_data, options: NSJSONReadingOptions.MutableContainers)) as! NSDictionary
main_data = NSMutableData()
delegate!.connectionDidFinish(self.identifier)
}
}
这是 Objective C 代码
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSError *error = nil;
dictonaryData = (NSDictionary*)[NSJSONSerialization JSONObjectWithData:main_data options:NSJSONReadingMutableContainers error:&error];
}
在 swift 代码中,有代码 main_data = NSMutableData() delegate!.connectionDidFinish(self.identifier)
如何将这部分转换为 Objective C ?我对 swift 不熟悉。感谢您的帮助
最佳答案
main_data = [NSMutableData new];
[delegate connectionDidFinish:self.identifier];
还有
delegate!.connectionDidFinish(self.identifier)
如果未为委托(delegate)对象实现 connectionDidFinish
将会崩溃(与我的 objective-c 代码相同)。要修复崩溃,您需要将 Swift 实现更改为
delegate?.connectionDidFinish(self.identifier)
对于 objective-c:
if ([delegate respondsToSelector:@selector(connectionDidFinish:)]) {
[delegate connectionDidFinish:self.identifier];
}
关于ios - 将 NSJSONSerialization 从 Swift 转换为 Objc C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35200284/