Добавил объект в массив NSMutable и выпустил - PullRequest
0 голосов
/ 05 октября 2011

В моем проекте данные, считанные из базы данных, назначаются выделенному объекту.После того, как объект добавлен в NSMutableArray.И тогда объект освобождается.Есть ли проблемы с этим?Мой исходный код:

     while (sqlite3_step(statement) == SQLITE_ROW) 
            {   
                TopicEntry *temp = [[TopicEntry alloc] init];
                ruleName = (char *)sqlite3_column_text(statement, 2);

                [temp setTopicName:(ruleName) ?[NSString stringWithUTF8String:ruleName] :@""];
                [temp setParentID:(int)sqlite3_column_int(statement, 2)];
                [rules addObject:temp];
                [temp release];

            }

Ответы [ 3 ]

1 голос
/ 05 октября 2011

Ваш код в порядке.

Единственное, о чем вам нужно подумать, это то, что когда у вас есть объект, вам нужно его освободить.Вызов метода init делает его владельцем, поэтому в соответствии с политикой вы должны освобождать его, независимо от того, что вы делаете с ним.Вы можете прочитать все о политике здесь .

Кроме того, NSMutableArray сохранит объекты, переданные ей через addObject.Но это не то, как вы должны думать об этом, и может рассматриваться как деталь реализации.Все, что имеет значение, является политикой собственности.

0 голосов
/ 05 октября 2011

Я бы сказал, что это был абсолютно правильный способ сделать это.rules сохранит временный объект при его добавлении и освободит его при его освобождении (или объект будет удален).

0 голосов
/ 05 октября 2011

Нет, ваш код выглядит нормально с точки зрения распределения памяти.

...