Snip20170925_44.png
Xcode中給當(dāng)前項目設(shè)置監(jiān)聽僵尸對象報的錯
Snip20170925_46.png
Xcode中設(shè)置全局?jǐn)帱c,可以讓程序停留在報錯的那行代碼
Snip20170925_47.png
杠杠func杠杠的使用
Snip20170925_49.png
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p = [[Person alloc] init]; // 1
// 只要一個對象被釋放了, 我們就稱這個對象為 "僵尸對象"
// 當(dāng)一個指針指向一個僵尸對象, 我們就稱這個指針為野指針
// 只要給一個野指針發(fā)送消息就會報錯
[p release]; // 1-1 = 0
// *** -[Person release]: message sent to deallocated instance 0x1001146b0
// 空指針 nil 0
// 為了避免給野指針發(fā)送消息會報錯, 一般情況下, 當(dāng)一個對象被釋放后我們會將這個對象的指針設(shè)置為空指針
// 因為在OC中給空指針發(fā)送消息是不會報錯的
// p = nil;
[p release];
[p release];
[p release];
[p release];
[p release];
[p release];
[p release];
}
return 0;
}