2017-08-10 53 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