목적 C의 실제 유형, 대 선언하고 다음이내가 내 코드에 뭔가를 디버깅했다
NSMutableSet *s = [[NSMutableArray alloc] init];
Card *c = [[Card alloc] init];
[s addObject:c];
[s addObject:c];
[s addObject:c];
NSLog(@"Set now contains %d cards ", [s count]); //Prints 3
컴파일 것을 깨달았다 그러나 선언 된 유형은 여기에서 설정 ... 왜 중복이 허용됩니다입니까? 이것이 왜 모두 컴파일됩니까?
실제로 배열을 배열로 할당하고 있습니까, 아니면 첫 줄에 오타가 있습니까? –
물론 이것은 오타입니다. 그러나 질문은 이것이 왜 전혀 컴파일되지 않는가라는 것입니다. –
나는 이것에 대해서도 궁금하다. 그래서 나는 빠른 테스트를했다. 동일한 코드의 경우 출력이 1입니다. 어떻게 3을 얻었습니까? set이 중복 된 값을 저장하지 않는다는 것은 사실이지만 중복 값을 추가 할 수 없다는 것을 의미하지는 않습니다. 그것은 논리 "오류"의 문제이며 따라서 컴파일러는 불평하지 않습니다. –