2010-09-09 44 views
-1

在我的代碼中,我在.h中聲明NSString對象,並在.m中合成,我用數組中的字符串對象分配它。但它不起作用。NSString不工作

當我在日誌中打印它有時會顯示CAlayer類,有時顯示NSCFString類對象。有些時候顯示UIDevicewhitedevicetype類如何解決這個問題?幫助......

+2

編輯您的問題以包含代碼。 – mbehan 2010-09-09 09:15:11

+0

只是讓我給你發送最新的特洛伊木馬來看看你的代碼。 – Eiko 2010-09-09 09:15:57

+0

這是過度釋放的經典症狀。如果您需要更具體的幫助,您需要向我們展示一些代碼。 – JeremyP 2010-09-09 10:19:14

回答

0

你如何將字符串分配給代碼中的NSString對象?

你在做這樣的事情:

NSString* someString = @"My string"; 
self.myStringProperty = someString; 

哪裏myStringProperty是NSString的聲明爲一個屬性。

0

我認爲你的記憶被毀了。你可能會發布一些不應該發佈的東西。

0

該參考肯定是不好的。你說你將字符串分配給一個屬性。這是否意味着在你的頭,你有這樣的:

@property (assign) NSString* myString; 

如果是這樣,則明確指出您不打算守住串參考,允許它被dealloced即使你仍持有指針(不是一個參考)。你應該讓說兩種:

@property (copy) NSString* myString; 
@property (retain) NSString* myString; 

如果你是指向你在一個陣列中的字符串值,只要該數組發佈的所有內容都被釋放。如果您沒有保留對字符串的引用,它將被解除分配。一旦發生這種情況,指針會將指針存儲到未定義的內存中,這些內存將被重用以保存您列出的對象類型。

相關問題