Это может показаться простым вопросом, но на самом деле я не понимаю, когда следует использовать alloc, сохранять или копировать.В чем разница между распределением, сохранением и копией
ответ
Просьба пройти this долгий учебник по управлению памятью. Возможно, потребуется некоторое время для чтения целиком, но это объясняет основные вещи.
EDIT: О копировании - Когда вы используете сохранение, вы просто увеличиваете количество удержаний объекта. Но когда вы используете копию, создается отдельная копия (мелкая копия) объекта. Раздельный означает, что другой объект сохранить счетчик 1.
Например,
NSObject *obj1 = [[NSObject alloc] init]; // obj1 has retain count 1 // obj1 and obj2 both refer same object. now retain count = 2 // any change via obj1 will be seen by obj2 and vice versa, as they point same object NSObject *obj2 = [obj1 retain]; // obj3 is a separate copy of the object. its retain count is 1 just like newly allocated object // change via obj3 will not affect obj1 or obj2 and vice versa as they are separate objects NSObject *obj3 = [obj1 copy];
Alloc: когда вам нужно сделать выделение памяти (Вы хотите создать объект, необходимо выделить пространство памяти для него)
Каждый объект имеет сохранить количество, которое указывает число объектов с права собственности на этот объект. Это делается автоматически с alloc и с копия (копия означает, что вы хотите получить копию этого объекта). Но вы также можете сделать это, используя ключевое слово.
При сохранении count == 0 будет вызван метод dealloc и высвободит все распределения, сделанные в этом объекте.
Я надеюсь, что это достаточно ясно. Если вы хотите получить дополнительную информацию: http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html
+1 за указание лучшего документа. – taskinoor
- 1. В чем разница между «копией» и «сохранением»?
- 2. В чем разница между() и [] динамическим распределением?
- 3. В чем разница между сохранением и сериализацией?
- 4. Разница между сохранением и копированием?
- 5. Разница между глубокой копией и мелкой копией
- 6. Разница между распределением и инициализацией
- 7. Разница между копией/a и копией/b
- 8. В чем разница между копией, сохранением и присваиванием в этих утверждениях?
- 9. В чем разница между фрагментом и копией в пандах?
- 10. Разница между copy_n и копией
- 11. разница между копией и move_uploaded_file
- 12. В чем разница между копией, mutableCopy и присваиванием?
- 13. В чем разница между распределением памяти через новый и распределителем
- 14. В чем разница между распределением iOS и APNs Production iOS?
- 15. В чем разница между модулем и распределением по CPAN?
- 16. В чем разница между распределением NSString: initWithCString и stringWithUTF8String?
- 17. В чем разница между распределением памяти и сборкой мусора, пожалуйста?
- 18. В чем разница между сохранением и сильным в объективе-c?
- 19. В чем разница между сохранением в прото и этим?
- 20. В чем разница между сохранением и вставкой в Mongo DB?
- 21. Какая разница между копией и назначением вектора?
- 22. В чем разница между сохранением Vec и Slice?
- 23. В чем разница между функцией возврата и сохранением переменной?
- 24. В чем разница между клоном, копией и копией изображения в EmguCV?
- 25. В чем разница между специальным распределением и распределением магазина приложений в ИОС
- 26. В чем разница между мелкой копией и глубокой копией с массивами JavaScript?
- 27. разница между распределением кортежей памяти и нормальным переменным распределением памяти
- 28. Разница между распределением памяти и распределением памяти для массива
- 29. В чем разница между распределением объекта-указателя двумя следующими способами?
- 30. Есть ли разница между ** копией ** и ** addAll **?
Спасибо. В учебном пособии объясняется, что сохраняет средства и довольно много базового управления памятью, но на самом деле это не объясняет, что делает метод копирования. Есть ли еще учебники по управлению памятью или только часть памяти памяти? Спасибо – TheAmateurProgrammer
Проверьте изменения. – taskinoor
А также, когда вы получаете время, проверьте подробное руководство по управлению памятью, предложенное William Remacle. – taskinoor