涉及到内存管理,只读,多线程等很多功能时,setter和getter方法也就没那么简单了;当然@property依然强大,很好用;

  1:内存管理相关参数:

    *:retain:  (如果是oc对象类型),生成的setter会自动release旧值,retain新值;

    *:assign:(适用于非oc对象)  这个是默认的值

    *:copy:release旧值,copy新值;

@property (retain) NSString *name;

// 同类型的参数不能同时写
// @property (retain, assign) NSString *name; // 错误写法
// 但是不同类型的可以写一起
@property (retain, readonly) NSString *name;

  2:是否生成setter

    *:readwrite :同时生成getter和setter  这是默认情况;

    *:readonly:只读,只生成getter;

  3:多线程管理

    *:nonatomic:一般用这个,不加锁的;

    *:atomic:(默认)性能低,加锁的;

  4:制定setter和getter的方法名:

  格式:如果要给setter方法制定方法名一定要加“:”(冒号)   @property (setter = abc :) int age;

  getter方法就不用了;也可以同时制定;

  一般开发中getter方法有时返回的时bool型,一般方法名会制定,以is开头;比如:isRich;

OC内存管理 @property的增强的更多相关文章

  1. OC内存管理-OC笔记

    内存管理细节:http://blog.sina.com.cn/s/blog_814ecfa90102vus2.html 学习目标 1.[理解]内存管理 2.[掌握]第一个MRC程序 3.[掌握]内存管 ...

  2. OC 内存管理机制总结

    OC 内存管理机制总结 一:OC内存管理机制目前分为两块,其一自动内存管理机制,其二手动内存管理机制: 1.首先我们从自动内存管理机制讲起: 1)什么是自动内存管理机制,自动内存管理机制就是程序中所创 ...

  3. oc内存管理总结(一)

    **内存管理 问题 1.什么是ios内存管理? 就是在对象不再被使用的时候,把它即时的从内存中清除掉 2.为什么要使用内存管理? 1.严格的内存管理,能够是我们的应用程在性能上有很大的提高 2.如果忽 ...

  4. OC内存管理-黄金法则

    1.内存管理-黄金法则 The basic rule to apply is everything that increases the reference counter with alloc, [ ...

  5. OC内存管理总结,清晰明了!

    <span style="font-size:18px;">OC内存管理 一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限.所以每一个APP所占的 ...

  6. OC内存管理基础

    OC 内存管理基础 一. retain和release基本使用 使用注意: 1.你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作) 2.你不想再使用(占用)某个对象,就 ...

  7. QF——OC内存管理详解

    堆的内存管理: 我们所说的内存管理,其实就是堆的内存管理.因为栈的内存会自动回收,堆的内存需要我们手动回收. 栈中一般存储的是基本数据类型变量和指向对象的指针(对象的引用),而真实的对象存储在堆中.因 ...

  8. 31 (OC)* 内存管理

    31 (OC)  内存管理 一:内存管理黄金法则. 如果对一个对象使用了alloc.[Mutable]copy,retain,那么你必须使用相应的realease或者autorelease 二:内存管 ...

  9. OC内存管理(ARC)

    1.什么是ARC Automatic Reference Counting,自动引用计数,即ARC,可以说是WWDC2011和iOS5所引入 的最大的变革和最激动人心的变化.ARC是新的LLVM 3. ...

随机推荐

  1. Node.js的安装

    学习一下JavaScript的另一个运行环境---Node.js Node.js是一个基于Chrome V8 引擎的 JavaScript 运行建立的平台, 用于方便地搭建响应速度快.易于扩展并且是全 ...

  2. jQuery 判断是否为数字的方法 及 转换数字函数

    <script language="javascript"> var t=$("#id").val();//这个就是我们要判断的值了 if(!isN ...

  3. Java longTime 和C#日期转换(结构+运算符重载)

    前几天,因为工作原因,连到了公司的一个java系统.查看数据的时候,突然整个人都不好了,数据库中日期字段时间为毛都是整型?之前从来没有接触过java,所心就趁机了解了一下.原来,在数据库中,保存的是j ...

  4. C# 线程--第一单线程基础

    概念 什么是进程? 当一个程序被打开运行时,它就是一个进程.在进程中包括线程,进程可以由一个或多个线程组成. 什么是线程? 线程是程序执行流的最小单元.一个标准的线程由线程ID,当前指令指针(PC), ...

  5. 分支优化:neg+sbb算术运算代替逻辑跳转

    今天在分析一个样本的时候,发现一段代码. // .text:100012DF sub esi, 0B7h // 183 // .text:100012E5 neg esi // .text:10001 ...

  6. 基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具

    基于OCILIB的oracle数据库操作总结 1.       类图 2.       基类BaseOCIDao的设计与实现 BaseOCIDao.h头文件 #pragma once /* ----- ...

  7. .NET中的标识符、关键字 以及 .NET中的命名规范

    1.关键字 C#定义了一些关键字(public/static/void/class/int/string),这些关键字是构成C#基本语法用的. VS中蓝色字的才是关键字. Main.String.Co ...

  8. no permissions fastboot

    no permissions  fastboot 获取fastboot文件 1.编译后得android源码会在目录: andsource2/out/host/linux-x86/bin 产生fastb ...

  9. silverlight Frame嵌套页面刷新问题

    1.此方法将会刷新到主页面 private void btn_Click(object sender, RoutedEventArgs e) { HtmlPage.Window.Eval(" ...

  10. jQuery 添加元素和删除元素

    jQuery - 添加元素 append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() - 在被选元 ...