———————————————————————————————————————————

@property参数



总的来说,这是一种编译器的特性(在生成@property的时候为@property添加相应的属性)





格式:@property (参数1,参数2.....) 数据类型  方法名

★注:修饰@property的参数,可以有一个,可以有两个,可以有三个,可以很多个!

(1)是否要生成set方法(若为只读属性就不会生成)

readonly:只读,只会生成getter的声明和实现(只有get方法)

readwrite:默认的,同时生成setter和getter的声明和实现



(2)多线程管理选择(苹果在一定程度上屏蔽了多线程操作)

nonatomic:高性能,一般使用这个

atomic:默认的,低性能



(3)@property 参数 -strong、weak



strong和weak主要用自动计数中,weak只能在自动引用计数中使用。(自动引用计数其实就是自动管理内存)



strong的功能相当于retain。



weak相当于assign,当用weak修饰的变量为空时,变量初始化为nil,而assign修饰的变量为空时并没有初始化。



协议指定的对象因当使用weak,用来打破引用循环。



(4)getter、setter方法的补充



@property (nonatomic,setter=setColor,getter=isColor) int age;



这种方法比较的lowB,因为我们写了一个color的set方法,但是却用来接收处理age。(我们只是验证这样是可以的,但是不建议用)

(5)在set、get内存管理机制这个属性中,我拿出assign和retain进行详细的说明,copy暂时不讲。

(有一个小总结:如果在类的声明中实例变量有OC对象类型的,那么就要在dealloc里面将这个OC对象release一下,如果在main函数中new了一个OC实例对象,那么就要在main函数的结尾同样release这个实例对象)

版权声明:本文为博主原创文章,未经博主允许不得转载。

Objective-C 【@property 的参数问题】的更多相关文章

  1. strong,weak, retain, assign的区别@property的参数

    strong,weak, retain, assign的区别@property的参数 先说经验 使用场合 copy:NSString,block, weak:UI控件,代理 strong:一般对象.自 ...

  2. objective-c在Xcode中@property相关参数的解释

    objective-c在其对象拥有成员变量时,我们为了保持代码的封装,会将成员变量设置为@protected,并为成员变量编写setter和getter方法. 如: @interface Person ...

  3. 五、@property的参数

    格式:@property(参数1,参数2)类型 名字: 参数可有可无 如:@property int age; @property (nonatomic,retain) UIButton* btn; ...

  4. @property的参数

    转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51353580 本文出自:[openXu的博客] 参数类别 参数 说明 原子性 atomic ...

  5. objective c, property, copy

    @property (copy) nsmutablearray *array -copy, as implemented by mutable Cocoa classes, always return ...

  6. property相关参数介绍

    1.copy 使用类型 :NSString,block 2.assign使用类型 :delegate,int,float,NSInteger,bool,枚举,结构体... 3.retain使用类型 : ...

  7. OC基础--内存管理中的@property关键字以及其参数

    在上一篇博客中整理的内存管理,管理类的代码量会感觉很大,而且如果对象多的话,感觉到代码有点冗余.下面就介绍Xcode中为我们自动生成内存管理代码的关键字@property 例如:在Person这个类中 ...

  8. @property在内存管理中的参数问题

    // // Created by wanghy on 15/8/14. // // /* retain : release旧值,retain新值(用于OC对象),要配合nonatomic使用. ass ...

  9. OC语法7——内存管理之@property参数

    @property的参数: 我们已经知道为了给开发者提供便捷,OC提供了@porperty关键字,它可以自动生成属性的set和get方法. 但是我们又知道,在OC中还面临者对象内存管理的问题,而且我们 ...

随机推荐

  1. rqnoj-217-拦截导弹-最长不上升子序列以及不上升子序列的个数

    最长上升子序列的O(n*log(n))算法. 不上升子序列的个数等于最长上升子序列的长度. #include<string.h> #include<stdio.h> #incl ...

  2. [Angular 2] Style Angular 2 Components

    Each Angular 2 Component can have its own styles which will remained contained inside the component. ...

  3. android ListView 中getview学习总结

    最近在做android相关的开发,ListView中有一个图片错位的问题,今天查了很多人写的一些东西,所以记录下来,算是一种加深理解吧. ListView是一个非常常用的控件,功能可以扩展的很丰富,而 ...

  4. js中日期转换为时间戳

    function dateToTimestamp(date) { //方法一 var newDate = new Date(); newDate.setFullYear(date.substring( ...

  5. VC编译连接选项详解(转)

    大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解.原因是多方面的.大多数情况下,我们只停留在“使用”它,而不会想去“了解”它.因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设 ...

  6. 代码片段 - JavaScript 求时间差

    // 求时间差1(时间差不能超过一天) function timeDifference1(startTime, endTime) { let times = endTime.getTime() - s ...

  7. iOS开发,让数据更安全的几个加密方式

    任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为重要.在app应用开发中,我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户一个安全保障.这篇 ...

  8. WinForm实现跨进程通信的方法

    public class WinMessageHelper { private struct COPYDATASTRUCT { public IntPtr dwData; public int cbD ...

  9. 为Web Api 2认证服务器增加令牌刷新功能

    Refresh tokens can potentially improve the situation but also increase complexity. A refresh token i ...

  10. Android(java)学习笔记61:多线程程序的引入