在互联网上和这里,我都看到了类似这样的代码
NSString *imageUrl = [NSString stringWithFormat:@"%@",[info valueForKey:UIImagePickerControllerReferenceURL]];然后
NSURL *url = [[NSURL alloc] initWithString:imageUrl];为什么不直接存储NSURL呢?是因为优化吗?NSString的存储成本会这么低吗?
发布于 2014-07-29 01:34:54
很多时候,这似乎不是空间问题(如果NSString不包含任何其他特定数据,那么存储NSURL会更有效,但在大多数应用程序中不会产生影响)。
实际上,将URL存储为字符串的最常见的原因是,这是我们自己看待URL的方式--只是字符串。
最后,最适用/最具体的选择通常是最好的--NSURL表示“一个可能包含远程服务器上资源的位置、磁盘上的本地文件的路径,甚至是任意编码数据的路径的URL”(来源),而NSString只是表示一串文本--如果一个URL是您想要的,那么使用NSURL。
(NSString的一个明显的优点是它们更易于移植--但如果需要的话,NSURL也可以序列化和移动!)
发布于 2014-07-29 01:25:19
NSString是比较普遍使用的。例如,AFNetworking使用字符串而不是NSURL。此外,如果您需要将此URL作为参数发送到web服务器,则还需要字符串格式的URL。
在Obj中,延迟实例化只是一个很好的实践。只在需要时才创建对象。
https://stackoverflow.com/questions/25006844
复制相似问题