xcode 9.3:读取对象

时间:2018-04-08 19:58:45

标签: objective-c xcode nsarray

在xcode 9.3之前,以下代码片段工作正常:

CKRecord *thePublicGameRecord;
...
//the record value, thePublicGameRecord[KEY_PLAYERSTATES], is set to a NSMutableArray, the size of which is based on the number of players in the game.
...

for (int i = 1; i <= max_number_of_players; i++)
{
    NSNumber *playerState - thePublicGameRecord[KEY_PLAYERSTATES][i];
    ...
}

自升级到xcode 9.3以来,这一行:

NSNumber *playerState - thePublicGameRecord[KEY_PLAYERSTATES][i];

现在给出了构建错误:

  

读取未在类型对象上找到的数组元素的预期方法   '__kindof id&lt; CKRecordValue&gt; _Nullable'

我必须像这样打开底层数组:

NSMutableArray *statesArray = thePublicGameRecord[KEY_PLAYERSTATES];
playerStatus = statesArray[i];

这不是世界末日,但我更喜欢原始方法。

我已经阅读了许多报告此错误的其他问题,但它们看起来都是不同的场景(自定义协议的定义不正确,变量类型不匹配,和/或xcode 4.5发布之前的问题)。

Expected method to read array element not found on object of type 'id<ProtocolName>'

Compiler error "expected method not found" when using subscript on NSArray

expected method to read dictionary element not found on object of type "NSDateFormatter*"

由于此代码已运行了一年多,我相信错误是由于执行方面的一些变化造成的。 在xcode 9.3中,这是否源于一些新的/更改的配置设置,我可以修复它吗?

0 个答案:

没有答案