2014-10-23 4 views
-1

Приносим извинения, если это уже было задано и ответили. Я новичок в Objective-C, и я пытаюсь создать проект, содержащий объект с NSMutableString, и я создаю NSMutableArray этих объектов.Управление памятью NSMutableArray с помощью NSMutableStrings

Каждая из строк в объекте объявляются следующим образом:

@property (assign) NSMutableString* propname; 

В инициализации рутина (initStringObject) для объекта Я заходящего каждой из строк следующим образом:

self.propname = [NSMutableString stringWithCapacity:16]; 
[self.propname setString:@"Name"]; 

Существует ряд свойств с несколькими NSMutableStrings, несколькими NSInteger и плавающей точкой. Все NSMutableStrings выделяются различной емкостью.

Для NSMutableArray, я заявляю, что в разделе интерфейсной просмотра контроллера файла .m следующим образом:

@property (strong) NSMutableArray *objectarray; 

В loadview, рутина я инициализации массива следующим образом:

self.objectarray = [NSMutableArray array]; 
[self.objectarray addObject:[[StringObject alloc] initStringObject]; 

Проект строит отлично, но когда я иду, чтобы заполнить представление информацией в объекте, строки повреждены. Целое число и значения float в объекте верны. Я полагаю, что я должен потерять указатель на правильное место в памяти, но я не могу понять, что происходит. В конце концов, если я продолжу выполнение программы, я получаю сообщение об ошибке EXC_BAD_ACCESS.

Это приложение OS X.

Может ли кто-нибудь увидеть, что я делаю неправильно?

Заранее спасибо.

+0

Вы не инициализируете mutablearray правильно. –

+0

Похоже, вы используете ARC (поскольку вы используете «сильный»), тогда я уверен, что NSMutableArray верен. @El Томатный, что вы там видите не так? – KirkSpaziani

ответ

2

Я подозреваю, что это атрибут assign в @property (assign). Вместо этого используйте strong (по умолчанию), чтобы ARC правильно управлял строковыми объектами.

+0

Большое спасибо. Это, похоже, устранило проблему. – costy

Смежные вопросы