0
我測試的UITableView:(下ARC),如下 代碼,通過alloc方法,singleton和common object init之間的區別是什麼?
- (void)viewDidLoad
{
[super viewDidLoad];
UnitTest *unitTest = [[UnitTest alloc] init];
UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
tableView.delegate = unitTest;
tableView.dataSource = unitTest;
[self.view addSubview:tableView];
}
我有對象單元測試執行的tableView委託。當我運行我的項目時,它會提取錯誤:
libobjc.A.dylib`objc_msgSend:
0x30f13f68: teq.w r0, #0
0x30f13f6c: beq 0x30f13faa ; objc_msgSend + 66
0x30f13f6e: push.w {r3, r4}
0x30f13f72: ldr r4, [r0] // Thread 1: BAD_EXE_ACCESS ....
0x30f13f74: lsr.w r9, r1, #2
0x30f13f78: ldr r3, [r4, #8]
0x30f13f7a: add.w r3, r3, #8
0x30f13f7e: ldr r12, [r3, #-8]
並且控制檯中沒有任何東西。
當我改變行
UnitTest *unitTest = [[UnitTest alloc] init];
到
UnitTest *unitTest = [UnitTest sharedUnitTest]; // i have implement this singleton
一切正常,OK!爲什麼
咋!我懂了!謝謝你,cwehrung – expl