【问题标题】:Objective-C can I short hand += increment properties? [duplicate]Objective-C我可以简写+=增加属性吗? [复制]
【发布时间】:2011-10-29 03:03:14
【问题描述】:

可能重复:
Mixing C pre/post increment/decrement with Objective-C dot operator works?

我正在调试我编写的一段代码。在其中,我使用速记来增加类的属性

 objectiveCClass.declaredProperty+= 1;

这种增量合法吗?

【问题讨论】:

  • 为什么不用objectiveCClass.declaredProperty = objectiveCClass.declaredProperty + 1自己测试一下?

标签: objective-c ios syntax


【解决方案1】:

有效

这段代码:

MyObj *m = [[MyObj alloc] init];
m.foo += 1;
NSLog(@"%d", m.foo);

m.foo += 2;
NSLog(@"%d", m.foo);

输出: 1 3

foo 是一个综合的 int 属性:

@property (assign) int foo;

相信会成功的

[m setFoo:([m foo] +1)];

【讨论】:

  • 你在开玩笑吧,我从没想过会这样。
  • 在我尝试之前我也不确定:o 我预料到你的想法。 objc 似乎是一个消息传递系统。在该模型中似乎与直觉相反。但对我来说,点语法也是如此;)
  • @bryanmac 我怀疑它是出于易于使用的目的而包含在内的,因为 obj-C 是 C 的超集,
【解决方案2】:
self.declaredProperty += 1;

是简写

[self setDeclaredProperty:self.declaredProperty + 1];

【讨论】:

    猜你喜欢
    • 2011-04-25
    • 2018-07-06
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多