Я не часто использую свойство atom, но я нашел что-то странное. В моем тестовом файле не используется ARC.
Я использую свойство @property(atomic,retain) NSArray* test;
Затем я просто делаю тест на предмет в методе init. как этотатомный make saveCount + 1
1) NSArray* testArray = [NSArray arrayWithObject:@"1"];
2) self.test = testArray;
После выполнения 1)
[testArray retainCount] = 1
После выполнения 2)
[testArray retianCount] = 2
[self.test retainCount] = 3
[_test retainCount] = 3.
Тогда я изменить свойство атомное к неатомической. После выполнения 1)
[testArray retainCount] = 1
После выполнения 2)
[testArray retianCount] = 2
[self.test retainCount] = 2
[_test retainCount] = 2.
, так что я не знаю, почему. атомный может добавить keepCount?
Короткий ответ: 'keepCount' является внутренней деталью реализации и не должен использоваться ни для чего. – Avi
Странно, что '[testArray saveCount]' и '[self.test saveCount]' могут быть разными. – kelin
@kelin Не совсем; абсолютное значение сохранения объекта совершенно бесполезно. Разница - это деталь реализации компилятора и/или среды выполнения. Вероятно, он изменится между уровнями оптимизации, платформами и/или версиями программного обеспечения. – bbum