【问题标题】:Check for NSString检查 NSString
【发布时间】:2016-01-17 15:45:38
【问题描述】:

我正在寻找健壮的铁包代码来检查 NSString 属性中是否包含有效字符串,而不是空、null、nil 等。

属性是:

@property (nonatomic, retain) NSString * name;

我一直在使用以下?

if (self.item.name==nil) {
//do something
}
else {
//do something else
}

但是,不确定这是否正常。 (完整的逻辑要复杂得多,因此如果逻辑每次都正常工作,追踪起来并非易事。)

我也试过self.item.length>0,但是它说长度不是一个有效的属性。

感谢您的任何建议。

编辑:

Item 是对象的一个​​实例,例如衬衫。它对应于核心数据中的一个实体。名称是对象的属性。我已将其从文本更改为名称,以避免与作为定义术语的文本混淆。

【问题讨论】:

  • 检查nil后使用self.item.text.length > 0
  • 或者只是跳过检查nil 并直接检查长度。无论如何,向nil 发送消息会导致0
  • 什么是self.item?您显示了一个名为 text 的属性,但没有显示名为 item 的属性。
  • item 是核心数据中实体对应的对象。 text 是对象的属性,如 shirt.color。
  • 长度不是有效的属性。

标签: ios objective-c null nsstring


【解决方案1】:

我想self.item 是一个 UILabel 或 UITextField。您定义的属性名为text。所以你正在使用错误的变量。您可以查看self.item.text.length > 0self.text.length > 0。以您的实际财产为准。

【讨论】:

  • 我将单词 text 更改为 name。 text,现在的名称,不是指文本字段或标签的 .text 属性,而是指对象的字符串属性。
  • 所以你可以使用 self.item.name.text.length > 0
  • 我试过了,但它不接受文本或长度。 item 是对应于核心数据实体的 NSObject 的属性。确切的错误消息是在“Items”类型的对象上找不到“Property 'text'”和在 Items 类型的对象上找不到“Property 'length”。
  • 这个答案stackoverflow.com/questions/482276/… 表明 (item.name==nil) 可能就足够了
  • 您不应访问文本或长度。首先访问名称,然后访问文本,然后访问长度。
猜你喜欢
  • 1970-01-01
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 2011-12-08
  • 2012-11-27
  • 1970-01-01
  • 2013-12-16
  • 1970-01-01
相关资源
最近更新 更多