你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios 該不該加self

ios 該不該加self

編輯:IOS開發綜合

糾結了兩天的問題,終於找到原因了!

錯誤情形:類的成員變量NSArray array.經過@property(nonatomic,copy)和@synthesize。

在類的初始化方法裡對array賦值array=[result objectForKey:@"list"];

打印array:NSLog(@"array is %@",array);結果正常。

然後將array作為tableview的數據源,一直出現問題。

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    if(array!=nil){

        NSLog(@"array is %@",array);
        return [array count];
    }else{
        return 1;
    }
}

打印都會報錯。

然後在array的賦值語句裡加了個retain,問題竟然解決了。

array=[[result objectForKey:@"list"]retain]或者在array前加上self.

self.array=[result objectForKey:@"list"].也行。

所以調用self.成員變量,這個成員變量的retain會加1的,切記。

因此像self.A=[A alloc]init]這樣的代碼很可能會crash的。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved