Возможно, анализатор запутался, когда увидел Тип , появляющийся слева от .
внутри вызова метода Obj-C.Например, если грамматика
'[' Type methodAndArguments ']'
существует, то она будет проанализирована перед распознаванием a '.' b
, и, поскольку .instance ...
не является ожидаемой конструкцией methodAndArguments , компиляторне удастся.Поскольку Type.method
не является ожидаемым использованием точечного синтаксиса, он допустим для компилятора , а не для его поддержки или даже для использования в будущем синтаксической ошибки.
Либо всегда используйте скобочные обозначения для методов класса, как вы ожидаете:
[[EntitlementsManager instance].entitlements objectAtIndex:0]
, либо переместите это выражение за скобки:
NSArray* entitlements = EntitlementsManager.instance.entitlements;
[entitlements objectAtIndex:0];
, либо '[' Type methodAndArguments ']'
не заставляйтебыть сопоставленным:
[(nil, EntitlementsManager.instance.entitlements) objectAtIndex:0]