以NSObject方法-(id)awakeAfterUsingCoder:(NSCoder *)decoder为例,文档说:
允许对象在解码后替换另一个对象.例如,表示字体的对象在解码时可以释放自身并返回具有与其自身相同的字体描述的现有对象.通过这种方式,可以消除冗余对象.
通常你会这样做
[self release];
return substitutedObject;
Run Code Online (Sandbox Code Playgroud)
使用ARC,你必须离开这条线.这不会泄漏吗?或者我应该只相信NSCoder对象为我发布原始对象?如果是这样,为什么你必须首先用非ARC代码明确释放自己?
self = nil根据编译器文档中关于self的内容,我认为不正确:http://clang.llvm.org/docs/AutomaticReferenceCounting.html#misc.self
memory-management objective-c nscoder automatic-ref-counting
我有一个表格视图,其中有五个单元格显示我的应用程序的设置.我希望前四个单元格出现在顶部.最后一个单元格实际上不是一个设置,它会显示"Legal"并将您带到EULA,所以我希望它出现在底部.
现在我知道我可以使用– tableView:viewForHeaderInSection:和– tableView:heightForHeaderInSection:创建一些填充,但我真的不喜欢这种方式的硬编码.我也不想使用UIButton,因为我希望它与其他单元格完全一样.
有谁知道这个的最佳做法?