다음 Objective-C 문이 올바르게 작동하지 않습니다.Objective-C에서 삼항 연산자를 사용하는 한계는 무엇입니까?
cell.templateTitle.text=[(NSDictionary*) [self.inSearchMode?self.templates:self.filteredTemplates objectAtIndex:indexPath.row] objectForKey:@"title"];
그러나 나는 이것을 if()
문으로 나누면 잘 동작합니다.
if(self.inSearchMode){
categorize=[(NSDictionary*)[self.filteredTemplates objectAtIndex:indexPath.row] objectForKey:@"categorize"];
} else {
categorize=[(NSDictionary*)[self.templates objectAtIndex:indexPath.row] objectForKey:@"categorize"];
}
Objective-C에서 삼항 연산자를 사용할 때의 제한 사항은 무엇입니까? C#와 같은 다른 언어에서는 위의 3 진 성명이 올바르게 작동했을 것입니다.
무슨 에러가 발생합니까 : (그리고 당신이 정말로 삼항 연산자의 사용을 주장하는 경우)) 대신 같은 것을 할 경우
그러나 코드가 더 읽을 수? –
오류가 없습니다. 그 결과는 무효입니다. – ChrisP
코드가 동일하지 않습니다. 코드의 두 비트 모두 정확히 반대 템플릿에 액세스합니다. 그들 중 하나는 틀린 것이고, 어떤 것을 말하기는 불가능합니다. – gnasher729