assign:'设置方法'只会针对「纯量类型」如CGFloat、NSInteger等
strong:表明「拥有关系」,此种属性赋新值时,设置方法先保留新值,并释放旧值,然后将新值赋上
weak:「非拥有关系」,设置此种属性新值时候,既不保留新值,也不释放旧值,此点类似assign,在属性所指向的对象遭到销毁时候,属性值会被置为nil,清空
copy:不保留新值,将其复制,防止对象在不知情情况下遭到修改
unsafe_unretained :语义和assign相同,适用于「对象类型」,「非拥有关系」,当目标对象遭到摧毁时,属性值不会自动清空,这点不同于weak