2017-08-10 83 views
0

我有一個textview,用戶可以編輯,當我嘗試從textview插入文本到類型爲Nsstring的本地屬性,我得到了這個屬性NSMallocBlock。是什麼原因?謝謝! 這是cartItemComment的defintaion:從textview插入文本到字符串返回NSMallocBlock在字符串目標c

@property (nonatomic, assign) NSString * cartItemComment; 

,這是代碼:

CartItem *cartItem = [[CartItem alloc]init]; 
cartItem.cartItemComment = itemRequestText.text; 

cartitem是有一個屬性cartItemComment一個對象,這些行後,我在cartItemComment了NSMallocBlock。

another problem, i can get a weird string like this:

+0

不能幫助沒有代碼。請在此處添加您的代碼 –

+0

我添加了更多信息。它現在明白嗎? – yoc

+0

號'itemRequestText.text'是否爲零?你能否顯示'cartItemComment'的定義。這是一個財產嗎?強而不實? (如果你把分配,明確可能會崩潰)。另外,它是一個NSString屬性?你能顯示崩潰的堆棧軌跡嗎?整個錯誤消息? – Larme

回答

1

assign財產屬性適用於原始類型,它什麼都不做與對象引用。當一個對象被分配給這個屬性時,它被釋放(如果它沒有被其他對象保留),並且你剩下的只是一個指向曾經存儲過的內存的指針。切勿使用assign來存儲對象。

weak類似於assign,唯一的區別是,當此屬性所引用的對象被釋放(保留計數達到零),它被設置爲nil,所以你永遠不會有一個指針到垃圾內存。

strong保留該對象並防止它被釋放。

你的財產應申報如下所示:

@property (nonatomic, strong) NSString *cartItemComment; 
+0

Thanx pckill !!你真的幫助我了! – yoc