[英]Converting NSJSONSerialization from Swift to Objc C
I am trying to convert a swift code to Objective C , since swift handles error by itself, I am little confuse about converting here, this is swift code : 我正在尝试将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)
}
}
and here is Objective C code 这是Objective C代码
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSError *error = nil;
dictonaryData = (NSDictionary*)[NSJSONSerialization JSONObjectWithData:main_data options:NSJSONReadingMutableContainers error:&error];
}
In swift code there is code main_data = NSMutableData() delegate!.connectionDidFinish(self.identifier)
how can I convert this part to objective c ? 在快速代码中,代码
main_data = NSMutableData() delegate!.connectionDidFinish(self.identifier)
如何将这部分转换为目标c? I am not familiar with swift. 我不熟悉迅速。 Thanks for your help
谢谢你的帮助
main_data = [NSMutableData new];
[delegate connectionDidFinish:self.identifier];
also 也
delegate!.connectionDidFinish(self.identifier)
will crash if connectionDidFinish
not implemented for delegate object (same with my objective-c code). 如果未为委托对象实现
connectionDidFinish
(与我的Objective-C代码相同),将崩溃。 To fix crash you need change the Swift implementation to 要修复崩溃,您需要将Swift实现更改为
delegate?.connectionDidFinish(self.identifier)
and for objective-c: 对于目标-c:
if ([delegate respondsToSelector:@selector(connectionDidFinish:)]) {
[delegate connectionDidFinish:self.identifier];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.