【问题标题】:Is it possible to call "location" on rangerOfCharacterFromSet without dot notation in objective-c?是否可以在没有点符号的情况下在目标 c 中调用 rangerOfCharacterFromSet 上的“位置”?
【发布时间】:2014-02-20 14:35:24
【问题描述】:

我试图在没有点符号的情况下写这个,但无法弄清楚:

[[textField text] rangeOfCharacterFromSet:someInstanceVar].location

我不断收到bad receiver type NSRange (aka '_struct NSRange')

这不可能吗?

亲切的问候

【问题讨论】:

  • 您不能以任何其他方式访问结构的成员。
  • 请检查我的更新,我基本上只允许在我的文本字段中使用字符和空格。有没有更优雅的方法来做到这一点?
  • 而且你无法避免结构,它们无处不在。
  • @LondonGuy:我冒昧地将问题回滚到其初始版本(因为更新从根本上改变了问题)。欢迎您发布另一个问题!

标签: objective-c cocoa-touch ios7 nsrange nscharacterset


【解决方案1】:

你不能在没有点的情况下调用它。 rangeOfCharacterFromSet 返回一个 NSRange,这是一个普通的 C 结构:

typedef struct _NSRange {
    NSUInteger location;
    NSUInteger length;
} NSRange;

而不是 Objective-C 对象。 .location 访问该结构的第一个成员 并且是纯 C 语法。 这与属性的点表示法或方法调用无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2015-04-01
    • 2016-07-17
    • 1970-01-01
    • 2022-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多