【问题标题】:insert text from textview to string return NSMallocBlock in the string objective c将文本从 textview 插入到字符串中,在字符串目标 c 中返回 NSMallocBlock
【发布时间】:2018-01-18 21:13:01
【问题描述】:

我有一个用户可以编辑的文本视图,当我尝试将文本视图中的文本插入到 Nsstring 类型的本地属性中时,我得到了这个属性 NSMallocBlock。是什么原因?谢谢! 这是 cartItemComment 的定义:

@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:

【问题讨论】:

  • 没有代码就帮不上忙。请在此处添加您的代码
  • 我添加了更多信息。现在明白了吗?
  • 没有。 itemRequestText.text 为零?你能显示cartItemComment 的定义吗?它是财产吗?强大的和非原子的? (如果你把分配,显然可能会崩溃)。另外,它是一个 NSString 属性?你能显示崩溃的堆栈跟踪吗?整个错误信息?
  • 这不是崩溃,但是之后,当我尝试使用这个 cartItemComment 时它失败了。
  • cartItemComment 不是 nil,它只是得到一个奇怪的类型,如 NSMallocBlock

标签: ios objective-c nsstring uitextview


【解决方案1】:

assign 属性属性适用于原始类型,它与对象引用无关。当一个对象被分配给这个属性时,它被释放(如果它没有被其他对象保留),你只剩下一个指向它曾经所在的内存的指针。永远不要使用assign 来存储对象。

weak 类似于assign,唯一的区别是当这个属性引用的对象被释放(保留计数达到零)时,它被设置为nil,所以你永远不会有指向垃圾内存。

strong 保留对象并防止其被释放。

你的属性应该这样声明:

@property (nonatomic, strong) NSString *cartItemComment;

【讨论】:

  • 感谢 pckill!你真的帮了我!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 2011-10-19
  • 1970-01-01
相关资源
最近更新 更多