After two days of struggle, I finally found the cause!
Error: NSArray array. Passed through @ property (nonatomic, copy) and @ synthesize.
In the class initialization method, assign array = [result objectForKey: @ "list"] to the array;
Print array: NSLog (@ "array is % @", array); the result is normal.
Then, the array is used as the tableview data source, and the problem persists.
-(NSInteger) tableView :( UITableView *) tableView numberOfRowsInSection :( NSInteger) section {
If (array! = Nil ){
NSLog (@ "array is % @", array );
Return [array count];
} Else {
Return 1;
}
}
An error is reported when printing.
Then a retain is added to the array assignment statement, and the problem is solved.
Array = [[result objectForKey: @ "list"] retain] or add self.
Self. array = [result objectForKey: @ "list.
Therefore, when you call the self. member variable, the retain of this member variable will add 1. Remember.
Therefore, code like self. A = [A alloc] init] may crash.