【发布时间】:2014-09-20 07:48:32
【问题描述】:
在整个互联网以及 SO 上,我都看到了与此类似的代码
NSString *imageUrl = [NSString stringWithFormat:@"%@",[info valueForKey:UIImagePickerControllerReferenceURL]];
然后
NSURL *url = [[NSURL alloc] initWithString:imageUrl];
为什么不只存储 NSURL?是因为优化吗? NSString 是不是存储成本更低?
【问题讨论】:
-
存放在哪里?这两行代码在哪里?在不同的地方或相同的方法?
-
任何使用第一行代码的人都疯了。它随时可能破裂。将
NSURL转换为NSString的正确方法是使用absoluteString方法,而不是stringWithFormst:。 -
坏习惯。 URL 或 URI 是结构化数据,NSURL 表达了这一点。字符串是一个字符数组。
-
@KatedralPillon 然后保留原来的
NSURL。没有理由将NSURL转换为NSString,除非您确实需要使用 URL 的NSString表示。 -
谢谢大家,我会保留NSURL,因为似乎没有实现优化,除了作为url之外我不需要url。
标签: ios objective-c nsstring nsurl