在我的项目中,从数据库读取的数据被分配给已分配的对象。将对象添加到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];
}
答案 0 :(得分:1)
您的代码没问题。
您唯一需要考虑的是,当您拥有一个对象时,您需要释放它。调用init
方法会使您拥有它,因此根据策略,您必须释放它,无论您使用它做什么。您可以阅读有关政策here的所有信息。
此外,NSMutableArray
将保留通过addObject
传递给它的对象。但这不是你应该如何思考它,可以被认为是一个实现细节。重要的是所有权政策。
答案 1 :(得分:0)
不,就内存分配而言,您的代码看起来很好。
答案 2 :(得分:0)
我说这是正确的做法。 rules
将在添加时保留临时对象,并在释放时释放它(或者删除对象)。