Day 06-Object-COC特有の構文
7013 ワード
1.メモリ管理の概要
2.メモリ管理の原則
4.野ポインタとゾンビオブジェクト
5.単一オブジェクトのメモリ管理
6.複数オブジェクトのメモリ管理
8.@propertyパラメータ
9. @class
10.循環retain
1.
:
1).
1 ,
2). ,
2.
: , ,
:OC , C
BSS : , , ,
: , ,
: , ,
,BSS , , , ,
3. OC ,
iPhone
40M
45M
120M
OC , ,
4.
OC ,
5.
,
,
6.
1). 1 1 , retainCount, , unsigned long 8
:
, 1 , 1
2). 1 , +1, 1
3). 1 , -1, 1
4). 0 , ,
7.
1). 1 retain , 1, 1
2). 1 release , 1, 1
3). 1 retainCount ,
++ -- 0 ,
, dealloc
8.
MRC: Manual Reference Counting ,
1 , retain , 1 release
2011 , IOS5
ARC: Automatic Reference Counting , . retain release
9. iOS5 , Xcode4.2 ARC
Xcode7 ARC
ARC
ARC MRC
10. 0 ,
, dealloc
dealloc :
dealloc ,
11.
1). 1 , 1
2). 0 , , dealloc
3). retain , +1
12. release , , -1;
0 ,
2.メモリ管理の原則
1.
1). retain
1 , retain
2). release
1 , 1 release
2. ARC , retain release dealloc
3.
1). 1 release
2).retain release
3). retain, release
retain, release
4). 1 retain, 1 release
, , retain 1 release,
4.野ポインタとゾンビオブジェクト
1.
C : 1 , , 1 , 1 ,
OC : ,
2. :
:
1 , ,
,
:
, . ,
3.
1 , ,
,
,
,
4. , ,
,
, , , , ,
5. .
, 1 , 1
6. ,
1 ,
1 , nil
1 nil, ( ) , , ,
7. 1
5.単一オブジェクトのメモリ管理
1.
1 , , ,
2.
1). , release
2).retain release
3). , nil
4). retain
3.
1). , 1 release
2).retain release
3). nil
6.複数オブジェクトのメモリ管理
1. 1 OC , setter
, 1 , 1 retain
, 1 , dealloc release
:
-(void)setCar:(Car *)car
{
_car = [car retain];
}
-(void)dealloc
{
[_car release]
[super dealloc]
}
2. 1 OC , setter ,
,
: , 1 , 1
release , retain
-(void)setCar:(Car *)car
{
[_car release];
_car = [car retain]
}
8.@propertyパラメータ
1. MRC , 1 1 oc , setter
-(void)setCar:(Car *)car
{
if(_car != car)
{
[_car release];
_car = [car retain];
}
}
dealloc
-(void)dealloc
{
[_car release];
{supper delloc];
}
OC , , ok
2. @property
1).
a.
b. getter setter
c. getter setter
setter , ,
3. @property
1). @property
@property( 1, 2, 3.....) ;
2). @property
a.
atomic nonatomic
b. setter
assign retain
c. ,
readonly readwrite
d. getter setter
getter setter
4.
atomic : , atomic setter
:
nonatomic: nonatomic setter
: ,
: , nonatomic
5. setter
assign , setter
retain: setter MRC
, 1 , release , retain
OC , retain
OC , assign
:
retain . setter MRC , dealloc release
, dealloc release
6. ,
readwrite: , getter setter
readonly: getter setter
7. getter setter
, @property getter setter , @property
getter = getter , @property getter
setter = setter , @property setter , setter , 1
getter setter
,
getter setter ,
1). setter ,
2). getter , 1 BOOL , getter is ,
: nonatomic
setter
OC , retain
OC , assign
,
, readonly
readwrite
1). setter ,
2). getter , 1 BOOL , getter is ,
1 1
getter setter
9. @class
1. , Person.h Book.h Book.h Person.h, , , ,
2. :
#import
@class , 1 , , 1
.m #import ,
3.@class #import
1).#import
2).@class , , 1 , 1
10.循環retain
1.
A B , B A
, retain,
2. :1 retain, 1 assign assign 1 dealloc release