我看到了一个使用@{ value:key }
符号初始化NSDictionary的Apple示例代码.我用来初始化一个常量NSDictionary+dictionaryWithObjectsAndKeys:
我的问题是:
两个生成的NSDictionaries之间有什么区别吗?我是否需要担心内存泄漏?我正在使用ARC.
我发现的只有Apple doc,但它与Mac有关,而不是iOS.而且符号是,@{ key = value }
而不是@{ value:key }
.
第二个问题是:使用此方法将应用程序提交到App Store是安全的,还是将其视为"未记录的API"?
谢谢!
我用......
+dictionaryWithObjectsAndKeys:
两个生成的NSDictionaries之间有什么区别吗?
编译器使用+[NSDictionary dictionaryWithObjects:forKeys:count:]
.所以'gotcha'是你在这些文字表达式中使用的参数/值不能是nil
.使用时+[NSDictionary dictionaryWithObjectsAndKeys:]
,输入在遇到nil时停止.nil
将文字表达式作为文字表达式的键或值传递是一个错误.这可能会改变你的程序(因为通过va_lists创建字典的语义是不同的),但更严格的语义可能会导致检测错误,而不是任何东西.
我是否需要担心内存泄漏?我正在使用ARC.
在某些情况下,您可能需要自动释放池 - 这取决于您在其中创建的上下文.
使用此方法将应用程序提交到App Store是否安全,还是被视为"未记录的API"?
你需要Apple-Clang 4.0(Xcode 4.4).它与OS X和iOS的所有版本兼容:
http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/ObjCAvailabilityIndex/_index.html
更多细节:http://clang.llvm.org/docs/ObjectiveCLiterals.html
归档时间: |
|
查看次数: |
1092 次 |
最近记录: |