방금이 오류를 알아 내려고 지난 3 시간을 보냈습니다. 나는 누군가에게 그것을 설명해주기를 바란다. 그래서 나는 그것을 다시하지 않는다.인스턴스 변수를 할당하는 아이폰
"self"를 사용하지 않고 NSString 인스턴스 변수를 할당했습니다. 클래스 ("self")가 릴리스되면 "잘못된 액세스"오류가 발생했습니다. 동일한 변수 선언을 사용하여 다른 클래스에서 똑같은 일을 수행했으며이 오류가 발생하지 않았습니다. 아래는 제 코드입니다. 나는 파손 된 라인을 주석 처리했고 아래 라인은 그것을 고쳤다. 그러나 나는 왜 ...이 문제를 일으키지 않는 다른 인스턴스 변수가 있다는 것을 알지 못합니다. 인스턴스 변수를 지정할 때 항상 "자체"예약어를 사용해야합니까? 저에게 알려주세요. 클래스 방법 내에서 NoteText 할당
선언
@property (nonatomic, readonly, assign) int IID;
@property (nonatomic, assign) int ProfileIID;
@property (nonatomic, retain) NSDate *NoteDate;
@property (nonatomic, copy) NSString *NoteText;
코드
// the default date format is Year-Month-Day
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateFormat:kDateFormat];
IID = sqlite3_column_int(selectstmt, 0);
ProfileIID = sqlite3_column_int(selectstmt, 1);
// notice this does not cause a memory error
NoteDate = [[df dateFromString: [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 2)]] retain];
// the following may be NULL. Checking using the sqlite3_column_text method
const char *columnText = (const char *)sqlite3_column_text(selectstmt, 3);
if(columnText != NULL)
{
// this causes a memory error
//NoteText = [NSString stringWithUTF8String: columnText ];
// this does not cause memory error
self.NoteText = [NSString stringWithUTF8String: columnText ];
}
젠장,이 xD Nice 응답을 입력하고있었습니다. –