OC MRC之 @property参数(代码分析)

news/2024/7/20 14:23:28 标签: 内存管理

第一部分

  1 //
  2 //  main.m
  3 //  04-@property参数
  4 //
  5 //  Created by apple on 13-8-9.
  6 //  Copyright (c) 2013年 itcast. All rights reserved.
  7 //
  8 #import <Foundation/Foundation.h>
  9 
 10 @interface Book : NSObject
 11 
 12 @end
 13 #import "Book.h"
 14 
 15 @implementation Book
 16 
 17 @end
 18 
 19 
 20 #import <Foundation/Foundation.h>
 21 #import "Book.h"
 22 
 23 @interface Person : NSObject
 24 @property int age;
 25 
 26 // retain : 生成的set方法里面,release旧值,retain新值
 27 @property (retain) Book *book;
 28 @property (retain) NSString *name;
 29 
 30 @end
 31 
 32 #import "Person.h"
 33 
 34 @implementation Person
 35 
 36 //- (void)setBook:(Book *)book
 37 //{
 38 //    if (_book != book)
 39 //    {
 40 //        [_book release];
 41 //
 42 //        _book = [book retain];
 43 //    }
 44 //}
 45 
 46 - (void)dealloc
 47 {
 48     [_book release];
 49     [_name release];
 50     [super dealloc];
 51 }
 52 
 53 @end
 54 
 55 
 56 
 57 
 58 #import <Foundation/Foundation.h>
 59 #import "Book.h"
 60 
 61 @interface Student : NSObject
 62 
 63 @property (retain) Book *book;
 64 
 65 @property (retain) NSString *name;
 66 
 67 @end
 68 
 69 
 70 #import "Student.h"
 71 
 72 @implementation Student
 73 
 74 
 75 - (void)dealloc
 76 {
 77     [_book release];
 78     [_name release];
 79     
 80     [super dealloc];
 81 }
 82 
 83 @end
 84 
 85 
 86 #import <Foundation/Foundation.h>
 87 #import "Person.h"
 88 #import "Book.h"
 89 
 90 int main()
 91 {
 92     Book *b = [[Book alloc] init];
 93     Person *p = [[Person alloc] init];
 94     
 95     p.book = b;
 96     
 97     
 98     NSLog(@"%ld", [b retainCount]);
 99     
100     
101     [p release];
102     [b release];
103     return 0;
104 }

 

第二部分

 

 1 //
 2 //  main.m
 3 //  05-@property参数
 4 //
 5 //  Created by apple on 13-8-9.
 6 //  Copyright (c) 2013年 itcast. All rights reserved.
 7 //
 8 
 9 #import <Foundation/Foundation.h>
10 
11 /*
12  1.set方法内存管理相关的参数
13  * retain : release旧值,retain新值(适用于OC对象类型)
14  * assign : 直接赋值(默认,适用于非OC对象类型)
15  * copy   : release旧值,copy新值
16  
17  2.是否要生成set方法
18  * readwrite : 同时生成setter和getter的声明、实现(默认)
19  * readonly  : 只会生成getter的声明、实现
20  
21  3.多线程管理
22  * nonatomic : 性能高 (一般就用这个)
23  * atomic    : 性能低(默认)
24  
25  4.setter和getter方法的名称
26  * setter : 决定了set方法的名称,一定要有个冒号 :
27  * getter : 决定了get方法的名称(一般用在BOOL类型)
28  */
29 
30 @interface Person : NSObject
31 
32 
33 // 返回BOOL类型的方法名一般以is开头
34 @property (getter = isRich) BOOL rich;
35 
36 //
37 @property (nonatomic, assign, readwrite) int weight;
38 // setWeight:
39 // weight
40 
41 //
42 @property (readwrite, assign) int height;
43 
44 @property (nonatomic, assign) int age;
45 
46 @property (retain) NSString *name;
47 @end
48 
49 #import "Person.h"
50 
51 @implementation Person
52 
53 @end
54 
55 
56 
57 
58 
59 #import <Foundation/Foundation.h>
60 #import "Person.h"
61 
62 int main()
63 {
64     Person *p = [[Person alloc] init];
65     
66     
67     p.rich = YES;
68     
69     BOOL b = p.isRich;
70     
71     return 0;
72 }

 


http://www.niftyadmin.cn/n/1779387.html

相关文章

7、awk编程语言

awk 独立的编程语言 &#xff08;变量 内置变量 流程控制 函数 数组&#xff09;在写脚本时使用awk获取数据给程序处理awk独立使用时&#xff0c;主要用来对数据做统计命令格式awk [选项] 处理动作 文件列表 &#xff08;多个文件之间用空格间隔&#xff09;命令 | awk [选项] …

SpringMVC 配置log4j

log4j.properties相关 http://www.cnblogs.com/ITEagle/archive/2010/04/23/1718365.html http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html 注意&#xff0c;如果只想对某些包操作&#xff0c;那么&#xff1a;log4j.logger.com.hutuinfo, stdout&#xff…

全方位分析中小企业自建机房的弊端

很多中小企业有自己的机房为什么还要用数据中心。此类问题&#xff0c;我们可以通过以下几点说明&#xff1a; 网络 企业自建机房一般用的是商务光纤&#xff0c;本质上也是从运营商的数据中心出来的光纤&#xff0c;只是要经过很多交换机跳转后才能到企业的机房&#xff0c;所…

ActiveMQ的queue以及topic两种消息处理机制分析

上一期介绍了我们项目要用到activeMQ来作为jms总线&#xff0c;并且给大家介绍了activeMQ的集群和高可用部署方案&#xff0c;本期给大家再介绍下&#xff0c;如何根据自己的项目需求&#xff0c;更好地使用activeMQ的两种消息处理模式。 1 queue与topic的技术特点对比 对比…

《利用python进行数据分析》读书笔记--第十章 时间序列(三)

7、时间序列绘图 pandas时间序列的绘图功能在日期格式化方面比matplotlib原生的要好。 #-*- coding:utf-8 -*- import numpy as np import pandas as pd import matplotlib.pyplot as plt import datetime as dt from pandas import Series,DataFrame from datetime import dat…

云计算的大势所趋

一、什么叫云计算&#xff1f;      云计算&#xff08;cloud computing&#xff09;是一种基于因特网的超级计算模式&#xff0c;我们可以把云计算想象为&#xff1a;成千上万台电脑和服务器连接成一片。因此&#xff0c;云计算可以拥有每秒10万亿次的运算能力。由于具有强…

java获取src下文件路径和获取webRoot下文件路径

获取src下的fileurl.properties文件路径 this.getClass().getResource("/fileurl.properties").getPath() 【this.getClass().getResourceAsStream("/"Basic.dll);】----jar中的class获取jar内部的资源文件&#xff0c;该文件打包成jar前放置在src目录下 如…

TFS2010删除团队项目

1&#xff09;cmd进入窗口2&#xff09;在命令窗口里输入cd C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE3&#xff09;执行命令删除TfsDeleteProject [/q] [/force] </server:<服务器名>> <团队项目名称>有的提示将server改成collecti…