NSString* strSubject = [[NSString alloc] initWithData: temp encoding:
NSISO2022JPStringEncoding];
我收到了一條內存消息「上面一行分配的對象的潛在泄漏」。 有沒有其他的方法來寫相同的。NSString在目標c中的內存警告
NSString* strSubject = [[NSString alloc] initWithData: temp encoding:
NSISO2022JPStringEncoding];
我收到了一條內存消息「上面一行分配的對象的潛在泄漏」。 有沒有其他的方法來寫相同的。NSString在目標c中的內存警告
除非您釋放它或將其放入autorelease池中,否則您將獲得該類消息。
這是可以做到的:
NSString* str = [[NSString alloc] initWithData: blah blah blah ... ];
[str release];
立即去做。您還可以使用:
NSString* str = [[NSString alloc] initWithData: blah blah blah ... ];
[str autorelease];
將在未來某個時候發佈。
paxdiablo意味着您需要執行'[strSubject發佈]'或'[strSubject autorelease]':-) – 2011-03-25 04:49:05
謝謝@smalduck,我將其納入答案。 – paxdiablo 2011-03-25 04:54:52
以後需要做[strSubject release]
或[strSubject autorelease]
以後或立即。我會用這個:
NSString* strSubject = [[[NSString alloc] initWithData:temp encoding:NSISO2022JPStringEncoding] autorelease];
可悲的是沒有一個NSString工廠方法stringWithData:
,但這是等價的。
事實上任何[NSString stringWithBlah:xx]
方法或多或少相當於[[[NSString alloc] initWithBlah:xx] autorelease]
你在哪裏釋放strSubject? – 2011-03-25 05:11:16