代码示例:
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];
答案 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.