Ios 我能用这个吗!物业接线员?

Ios 我能用这个吗!物业接线员?,ios,objective-c,properties,operators,not-operator,Ios,Objective C,Properties,Operators,Not Operator,是否可以使用(not或bang)运算符?我之所以想这样做,是因为我可能会找到一个与我希望它做的完全相反的属性。这是我心目中的一个例子 GKMatchRequest *request = [[GKMatchRequest alloc] init]; request.minPlayers = 2; request.maxPlayers = 2; request.!playerGroup = MyMap_Forest | MyRulesCaptureTheFlag; 我从中得到了这个示例,并对其进行

是否可以使用
(not或bang)运算符?我之所以想这样做,是因为我可能会找到一个与我希望它做的完全相反的属性。这是我心目中的一个例子

GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 2;
request.!playerGroup = MyMap_Forest | MyRulesCaptureTheFlag;
我从中得到了这个示例,并对其进行了修改

以下是文件中的内容:

如果游戏设置了
playerGroup
属性,则只有其请求共享相同
playerGroup
值的玩家才会由游戏中心自动执行。将
playerGroup
属性设置为0,允许将玩家匹配到任何等待的比赛中。将playerGroup属性设置为非零数字,以便仅将玩家与其匹配请求共享相同玩家组号码的玩家匹配


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


无法实现“匹配除此值以外的任何内容”。这与语言或语法无关。这完全取决于苹果如何定义
playerGroup
属性。其语义在实现中,无论是在框架中还是在服务器端。希望某个假设的语言特性能够在这些代码片段中引发不同的行为是不明智的。

因此,这就是
request.playerGroup=!(MyMap|u Forest | MyRulesCaptureTheFlag)您无法使用建议的语法执行您希望执行的操作@Leo的语法就是你需要的。呃,假设
MyMap\u Forest
MyRulesCaptureTheFlag
为非零,那么
!(MyMap_Forest | MyRulesCaptureTheFlag)
将始终为零。如果指定的值是位掩码,那么期望的结果可能是
request.playerGroup=~(MyMap\u Forest | MyRulesCaptureTheFlag)。这将反转位掩码,使其包含除两组之外的所有内容。但是,如果这些值不是位掩码,那么这也不起作用。如果这是位掩码,那么这将是切换到Swift的一个很好的理由,在Swift中,您可以将位掩码作为集合进行操作,并且执行您想做的事情是很简单的。但事实并非如此