先上**,這個例子是 kenshincui 大神的。拿來學習使用。
car.h
#import
@inte***ce car : nsobject
#pragma mark - 屬性
#pragma mark 車牌號
@property (nonatomic,copy) nsstring *no;
#pragma mark - 公共方法
#pragma mark 執行方法
-(void)run;
@end
car.m
#import "car.h"
@implementation car
#pragma mark - 公共方法
#pragma mark 執行方法
-(void)run
#pragma mark - 覆蓋方法
#pragma mark 重寫dealloc方法
-(void)dealloc
@end
person.h
#import
@class car;
@inte***ce person : nsobject
#pragma mark - 屬性
#pragma mark 姓名
@property (nonatomic,copy) nsstring *name;
#pragma mark - 公共方法
#pragma mark car屬性的set方法
-(void)setcar:(car *)car;
#pragma mark car屬性的get方法
-(car *)car;
@end
person.m
#import "person.h"
#import "car.h"
@implementation person
#pragma mark - 公共方法
#pragma mark car屬性的set方法
-(void)setcar:(car *)car
}#pragma mark car屬性的get方法
-(car *)car
#pragma mark - 覆蓋方法
#pragma mark 重寫dealloc方法
-(void)dealloc
@end
main.h
#import
#import "person.h"
#import "car.h"
void getcar(person *p)
int main(int argc, const char * argv)
return 0;
}
上執行結果:
2015-10-12 22:20:32.089 1010-記憶體[380:303] retaincount(p)=1
2015-10-12 22:20:32.092 1010-記憶體[380:303] invoke car(666666) dealloc method.
2015-10-12 22:20:32.094 1010-記憶體[380:303] car(888888) run.
2015-10-12 22:20:32.095 1010-記憶體[380:303] invoke person(kenshin) dealloc method.
2015-10-12 22:20:32.096 1010-記憶體[380:303] invoke car(888888) dealloc method.
program ended with exit code: 0
問題:再getcar方法中,明明是car1**先release,為什麼卻是 invoke car(666666) dealloc method. car2先release了。
為什麼car1的release**放到了最後面?
乙個初學者的RHCE之路
乙個初學者的rhce之路 1 認清你的考試目的,rhce對於初學者來說是很難的,所以我不建議沒有準備好就報考rhce,雖然我也是如此。因為此考試通過率底,靈活性大,我見過的從事linux工作的 十分牛x的人物,考兩次都沒有通過的。所以一定要明確你自己的目的,是要從事linux工作,尤其是linux網...
給ios初學者的建議
不管你是培訓的還是在上學的或者是自學的!你選擇了這條路就要認真的對待你所學的,別出來找工作什麼都不會!首先,第一點 把你的obj c語言基礎打好,在學習obj c之前最好學一下c c 除此之外最好各課都要設計了解些,xml,json,mysql,html,js!我碰到乙個連json和xml是什麼都不...
如何從乙個初學者成乙個DBA
oracle的體系太龐大了,對於初學者來說,難免會有些無從下手的感覺,什麼都想學,結果什麼都學不好,所以把學習經驗共享一下,希望讓剛剛入門的人對oracle有乙個總體的認識,少走一些彎路。一 定位 oracle分兩大塊,一塊是開發,一塊是管理。開發主要是寫寫儲存過程 觸發器什麼的,還有就是用orac...