从sqlite获取价值

时间:2009-11-16 02:44:57

标签: objective-c copy sqlite

代码示例:

NSString *str= [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectStatement, 1)];
Test *t=[[Test alloc] init];
t.str=[str copy]; // why use "copy" here?
[str release];

2 个答案:

答案 0 :(得分:1)

由于两个原因,它看起来很糟糕。由于str被丢弃,您也可以将其分配给t.str而不是副本。其次,更重要的是,制定者应该注意保留或复制数据。

答案 1 :(得分:1)

应该是:

NSString *str= [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectStatement, 1)];
Test *t=[[Test alloc] init];
t.str=str; // No point copying to release original.