【问题标题】:Memory Leak warning内存泄漏警告
【发布时间】:2011-10-23 19:15:59
【问题描述】:

我在用户定义的方法中声明了一个数组。我使用这个数组来存储从 sqlite 数据库返回的值。然后我使用该值进行进一步处理...但是 Xcode 在数组声明时给了我以下警告。 “初始化期间存储的值永远不会被读取” 这是我的代码:

 NSMutableArray *tempId=[NSMutableArray array];
NSString *sqlStr1=[NSString stringWithFormat:@"select deck_id from decksTable limit '%d' offset '%d'",1,deckID-1];
char *sql1 = (char*)[sqlStr1 UTF8String];
tempId=[appDelegate.dbConnection  fetchColumnFromTable:sql1 col:0];
NSNumber *tempint1 =[tempId objectAtIndex:0];
int actualDeckID=[tempint1 intValue];

请帮我解决这个问题。

注意 dbConnection 是数据库连接对象,而 fetchColumnFromTable 是用户定义的方法,它返回从数据库中获取的值数组。然后我得到 NSNumber 中的第一个值并将其转换为整数以在我的代码中使用它。我在声明 tempId 数组时收到上述警告。

【问题讨论】:

标签: iphone memory-leaks nsmutablearray


【解决方案1】:

NSMutableArray *tempId=[NSMutableArray array]; 不是必需的,因为此语句分配的内存未使用,并且您将 tempId 指向在tempId=[appDelegate.dbConnection fetchColumnFromTable:sql1 col:0]; 返回的数组。所以基本上你可以只声明数组而不初始化它。 NSMutableArray *tempId;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2012-10-20
    • 2011-01-16
    相关资源
    最近更新 更多