Когда были выполнены следующие коды:
NSArray *array = [[NSArray alloc] initWithObjects: @"Browny", @"Andy", @"Chiki", @"Gillu",
@"SnowLeopard", @"Lion", @"Tiger", @"SiberianTiger", nil ];
счет сохранения array
будет равен 1.
Если вы решите использовать self.pickerData = array;
из-за метода установки,счетчик сохранения массива будет равен 2. Затем, после выполнения [array release];
счетчик сохранения массива снова будет равен 1, он будет сохранен как pickerData.
Однако, если используется pickerData = array
, счетчик сохранения массивабудет по-прежнему 1, так как retain
не было выполнено.Следовательно, после [array release];
счетчик сохранения pickerData станет 0, тогда как pickerData все еще используется.Поэтому сбой.
Я думаю, что @ Paul.s дал достаточно хороший ответ, ключевой момент в том, что метод установки отличается, когда используется ключевое слово self
.Настоящим я отвечаю на это в другой перспективе, надеясь, что это может быть полезным и более простым.