IIRC, 당신은이 작업을 수행 할 수 있습니다
$player.currencyDictionaries[0].earned > 1000
주 (당신은 전달 된 값은 문자열과 숫자가 아닌 것을 보장하기 위해 ['0']
을해야 할 수도 있습니다) 그 구문 ([0]
) 만이 술어 형식 문자열에서 작동합니다. 키 경로에서는 작동하지 않습니다.
이 구문은 술어 BNF의 "Index Expression"섹션에서 정의됩니다.
편집
사실이 작동하고, 그 이유는되지 않습니다
이
문자열 "$player.currencyDictionaries[0].earned"
읽고 유형 NSKeyPathExpression
의 NSExpression
으로 켜집니다. 즉, 평가할 때 기본적으로 해당 문자열을 가져와 수신기의 -valueForKeyPath:
메서드를 통해 실행합니다. 앞에서 언급했듯이 대괄호 구문은 키 경로에서 작동하지 않으므로 잘못된 답변이 생성됩니다. 그러나
, 당신은 currencyDictionaries
다시 표시 NSDictionary
및 NSDictionary
overrides the -valueForKey:
method 때문에, 당신은 리터럴 문자열로 돌려, 주요 경로로 [0]
비트를 설정할 수 있습니다 알고 있기 때문에 :/: HTTP 당으로
$player.currencyDictionaries.'0'.earned
을 /stackoverflow.com/questions/1767374/hyphen-in-nsdictionary-key 내 술어를 작성하는 것은이 작품 같은 것을 테스트하고 확인했습니다 : $ player.currencyDictionaries.'0'.earned> 1000 – M2tM
귀하의 솔루션 아무튼 ' 내 특정 술어에 대한 작업, 난 예외 : 잡힌 : - [ __NSCFDictionary setObject : forKey :] : nil 값 삽입 (키 : 목록) – M2tM
나는 내 자신의 질문에 대답 하겠지만 내 평가로 인해 그럴 수 없습니다. – M2tM