【发布时间】:2014-04-11 18:24:11
【问题描述】:
我有一个视图控制器,它调用另一个 nsobject 文件中的函数。
所以在我的主视图控制器中我调用了一个函数
[DatabaseFunctions FillArrays: 数组];
Array 是在视图控制器中初始化的 nsmutablearray。
在 DatabaseFunctions.h 中
+ (void) FillArrays : (NSMutableArray*) Array;
在 DatabaseFunctions.m 中
+ (void) MainScreenFill : (NSMutableArray*) Array{
sqlite3_stmt *statement;
if (sqlite3_open([dbDatabasePath UTF8String], &TableDB)==SQLITE_OK) {
[Array removeAllObjects];
NSString *querySql = [NSString stringWithFormat:@"SELECT VARIABLE, VARIABLE1, VARIABLE2, VARIABLE3 FROM TABLE];
const char* query_sql = [querySql UTF8String];
if (sqlite3_prepare(TableDB, query_sql, -1, &statement, NULL)==SQLITE_OK) {
while (sqlite3_step(statement)==SQLITE_ROW)
{
MainTableView *P = [[MainTableView alloc]init];
[P setFirstname:[NSString stringWithUTF8String:(const char *)sqlite3_column_text(statement, 0)]];
[P setSecondname:[NSString stringWithUTF8String:(const char *)sqlite3_column_text(statement, 1)]];
[P setClass:[NSString stringWithUTF8String:(const char *)sqlite3_column_text(statement, 2)]];
[Array addObject:P];
}
}
}
sqlite3_close(TableDB);
}
我的问题是内存分配 MainTableView *P = [[MainTableView alloc]init];解除分配?
【问题讨论】:
-
P多次发布。你真的是想问什么时候会被释放? -
仅供参考 - 标准约定是只有类名使用大写字母。方法名和变量名应以小写字母开头。
-
是的,我的意思是取消分配对不起
标签: objective-c memory-management