iOS复习笔记6:property详解

@property type xxx 可以自动生成一个type _xxx;成员变量;

同时还生成对应的setter和getter方法。

可以通过以下四种类型的参数,控制生成getter和setter方法。

1 set方法内存管理参数

1.1 assign: 默认值,直接赋值,使用于基础数据类型

1.2 retain: release旧值,retain新值,再赋值

1.3 copy  : release旧值,copy新值

2 是否要生成setter方法的参数

2.1 readwrite: 默认值,同时生成setter,getter方法声明和实现

2.2 readonly : 只会生成get方法

3 多线程加锁控制参数

3.1 natomic  : 默认值,多线程中加锁

3.2 nonatomic: 多线程中不加锁,性能高, 推荐使用

4 方法名参数(一般只用于改变布尔类型的getter方法)

4.1 getter:getter方法名

4.2 setter:setter方法名(注意一定要有冒号)

* 四种类型的参数只要不功能冲突,可以同时存在。

例如:

@property(nonatomic, assign, readwrite) int age;
@property(nonatomic, getter = isRich) BOOL rich;
@property(nonatomic, retain) Book* book;

时间: 2024-08-09 20:20:03

iOS复习笔记6:property详解的相关文章

iOS复习笔记8:autorelease详解

一 概念 iOS在程序在运行的过程中,会创建很多个释放池,自动释放池以栈的形式存放的(先进后出). 对象调用autorelease时,会被放入栈顶的自动释放池中. 当自动释放池销毁时,会对池的所有对象发送一次release消息: 所以发送autorelease之后引用计数不会立即-1. autorelease返回对象本身. 二 实例 // Person.h @interface Person @property(nonatomic, assign) int age; @end // Person

IOS 学习笔记 —— UILable 使用详解(一)

1 设置字体大小 //修改字体 //    NSLog(@"fontFamily = %@", self.labelTradePrice.font.familyName);     self.labelText.font = [UIFont fontWithName:@".Helvetica Neue Interface" size:13];

IOS 学习笔记 —— tableView 使用详解(一)

1 去除分割线 //去除分割线 self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 2 高度设置 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {     UITableViewCell *cell = [self tableView:tableView cellForRo

IOS开发学习笔记(1)-----UILabel 详解

1. [代码][C/C++]代码     //创建uilabelUILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 280, 80)];//设置背景色label1.backgroundColor = [UIColor grayColor];//设置taglabel1.tag = 91;//设置标签文本label1.text = @"Hello world!";//设置标签文本字体和字体大小label1.

IOS开发学习笔记(2)-----UIButton 详解

1. [代码][C/C++]代码     //这里创建一个圆角矩形的按钮    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];    //    能够定义的button类型有以下6种,//    typedef enum {//        UIButtonTypeCustom = 0,          自定义风格//        UIButtonTypeRoundedRect,        

iOS中UIWebView的使用详解

iOS中UIWebView的使用详解 一.初始化与三种加载方式 UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种: 第一种: - (void)loadRequest:(NSURLRequest *)request; 这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的,例如我加载百度的主页:     UIWebView * view = [[UIWebView al

iOS网络编程(六) NSURLSession详解

昨夜浏览Demo的时候,看到别人请求网络数据用的是NSURLSession,当时就在想这里什么,怎么没有用过,引起了我的好奇心,遂去百度-谷歌-官方文档一一查看,有了一定的了解,原来NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的. 查找资料,写了一个小Demo,大家可以看看,有什么不足的地方,可以留言帮我指出来. // // HMTRootViewController.m // // // Created by HMT on 14-6-7.

iOS 6分享列表——UIActivityViewController详解

iOS 6分享列表——UIActivityViewController详解 2013-06-03 01:42:33     发表评论 在iOS 6之后提供了一个分享列表视图,它通过UIActivityViewController管理.苹果设计它主要的目的是替换分享动作选单(ActionSheet),分享动作选单是出于分享目的的动作选单. 通过动作选单上的选择按钮,可以把图片分享给别人.但是随着iOS功能的不断增加,需要分享的内容越来越多,它会以模态视图方式呈现.iPad设备的分享列表,它会以Po

iOS开发之手势gesture详解(二)

与其他用户界面控件交互 UIControl子类会覆盖parentView的gesture.例如当用户点击UIButton时,UIButton会接受触摸事件,它的parentView不会接收到.这仅适用于手势识别重叠的默认动作的控制,其中包括: 一根手指单击动作:UIButton, UISwitch, UIStepper, UISegmentedControl, and UIPageControl. 一根手指擦碰动作:UISlider 一根手指拖动动作:UISwitch 包含多点触摸的事件 在iO