我可以使用 ! 属性 上的运算符?

Can I use the ! operator on a property?

是否可以在 属性 上使用 !(not 或 bang)运算符?我想要这样做的原因是因为我可能会发现一个 属性 与我想要它做的完全相反。这是我想到的一个例子。

GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 2;
request.!playerGroup = MyMap_Forest | MyRulesCaptureTheFlag;

我从 Apple Docs 得到这个例子并修改它。

文档是这样说的:

If your game sets the playerGroup property, only players whose requests share the same playerGroup value are automatched by Game Center. Setting the playerGroup property to 0 allows the player to be matched into any waiting match. Set the playerGroup property to a nonzero number to match the player only with players whose match request shares the same player group number.

你似乎想做的事是不可能的。 playerGroup 属性 只有两种可能的语义:如果为 0,则匹配任何内容;如果为 0,则匹配任何内容。如果它是任何非零值,那么它只匹配具有相同值的请求。

没办法实现"matches anything except this value"。这与语言或语法无关。这完全取决于 Apple 如何定义 playerGroup 属性。其语义在实现中,既在框架中又在服务器端。希望某些假设的语言功能可以在这些代码段中引发不同的行为是不明智的。