Пример кода:
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];
Должно быть:
NSString *str= [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectStatement, 1)]; Test *t=[[Test alloc] init]; t.str=str; // No point copying to release original.
Это выглядит как плохое кодирование по двум причинам. Поскольку str отбрасывается, вы можете также назначить его, а не копию, на t.str. Во-вторых, и что более важно, сеттеры должны позаботиться о сохранении или копировании данных.
str
t.str