내 코드가 제대로 작동하지만 경고 메시지가 표시되므로 더 잘 수행 할 수 있다고 생각합니다. NSObject (Objects)의 하위 클래스가 있고 Object (subObject)의 하위 클래스가 있습니다. subObjects에 선언 된 속성이 있습니다. 하나의 NSMutableArray에 Object의 모든 다른 하위 클래스 인 많은 객체를 저장합니다. 때로는 배열을 통해 특정 객체에 대한 특정 작업을 수행합니다. 나는이처럼 내 배열로부터 읽어 :이 경우 개체의 하위 클래스 속성 사용
//I have declared an Objects "myObject" earlier in my code.
//c is an int used to select an object from the array
myObject = [arrayObjects objectAtIndex:c];
, 나는
[myObject property]
나는 그렇게는 할 수 없어야 설정 한 때문에 코드가 작동하기 때문에 하위 객체에 선언 내 속성에 액세스하고 subObject가 아닌 코드의이 부분을 얻으려면. 그러나 컴퓨터가 이것을 모르기 때문에 경고 메시지가 나타납니다. myObject가 subObject가 아니라 Object라는 것을 알고 있습니다. 이 문제를 해결하고 경고를 없애려면 어떻게해야합니까?
감사합니다! 나는 다른 물건을 만들지 않는 것이 훨씬 더 효율적이라고 확신합니다. – WolfLink
예,하지만 SubObject 클래스에 대해 속성이 정의되었다고 했으므로 배열에 여러 객체 유형 (Object, SubObj1, SubObj2, ..)이 포함되어있는 경우 이해했거나 잘못 이해 했으므로 첫 번째 제안이 올바르게 작동하지 않습니다. . 또한 SubObj 유형이 아닌 다른 객체를 사용하면 다른 변수 (포인터 여야 함!) 만 소개하면됩니다.다시 말하지만 (나는 잘못 이해했을 수도 있음) - 단지 발언으로 만, 나는 런타임 전에 ID 검사를 사용하는 것처럼 많은 수의 (유형) 검사를 강요하는 경향이 있지만 나중에 추한 오류를 줄 수 있습니다 ... – user387184
그가하지 않았다면 아직 아무 것도 추출하지 못했고 모든 것이 SubObject 유형이라는 것을 확신합니다. 그러면 작동 할 것입니다. 그렇지 않으면 그는 캐스팅하거나 ID를 사용할 수 있습니다. –