OC property 属性设置解释

OC property 属性设置解释

This link has the break down

http://clang.llvm.org/docs/AutomaticReferenceCounting.html#ownership.spelling.property

assign implies __unsafe_unretained ownership.

copy implies __strong ownership, as well as the usual behavior of copy
semantics on the setter.

retain implies __strong ownership.

strong implies __strong ownership.

unsafe_unretained implies __unsafe_unretained ownership.

weak implies __weak ownership.

具体可参考狮子书 XD

一般实践:

delegate -> weak

IBOutLet -> weak

int, BOOL -> assign

copy 有点特殊,主要针对NSString

1.定义NSString的指针,当源字符串是NSString时,不管是copy还是string都是浅拷贝。

2.定义NSString的指针,当源字符串是NSMutableString时,strong是浅拷贝,而copy是深拷贝。这样,当有人从NSMutableString那边修改时,用了copy的NSString因为是深拷贝,就不会被影响,而strong的话就会发现明明是NSString却被改变了,所以建议使用copy。

推荐阅读更多精彩内容

  • 307、setValue:forKey和setObject:forKey的区别是什么? 答:1, setObjec...
    AlanGe阅读 918评论 0 1
  • 无所事事已经一年多,实在不忍时间就这样无休无止地划过。口袋里的存折已经被耗光,再也没有购物可供我消磨。眼睁睁看着自...
    初号机beast模式阅读 245评论 0 1
  • 我用青春守护你 而今你也有了想要守护的她 最幸福的事就是看着你长大 虽然你从未光顾我的生活 但关于青春的回忆里满满...
    maplefashion阅读 108评论 0 0
  • 胃病,实际上是许多病的统称。它们有相似的症状,如上腹胃脘部不适、疼痛、饭后饱胀、嗳气、返酸,甚至恶心、呕吐等等。临...
    快乐_b1c5阅读 166评论 0 0