1
저는 정말 이상한 문제가있었습니다. 나는 변경할 수 있다고 주장하고 addObject :에 응답한다고 주장하는 가변 배열을 가지고 있지만, 변경 가능하지 않다는 것을 말하며 충돌합니다. 내가 변경할 사본을 설정하면 이제iOS - 가변 배열 문제?
NSLog(@"Can add object: %d", [[MySingleton sharedInstance].myArray respondsToSelector:@selector(addObject:)]);
if([[MySingleton sharedInstance].myArray isKindOfClass:[NSMutableArray class]])[[MySingleton sharedInstance].myArray addObject:objectToAdd];
else NSLog(@"Not mutable");
는, 작동 : 여기
는 코드입니다.NSLog(@"Can add object: %d", [[MySingleton sharedInstance].myArray respondsToSelector:@selector(addObject:)]);
if([[MySingleton sharedInstance].myArray isKindOfClass:[NSMutableArray class]])[[MySingleton sharedInstance].myArray.mutableCopy addObject:objectToAdd];
else NSLog(@"Not mutable");
왜 그렇습니까? 왜 그것은 변경 가능하고 addObject : 할 수 있다고 주장하지만 변경 가능한 사본을 사용하지 않으면 충돌이 발생합니까?
http://stackoverflow.com/questions/1096772/is-it-safe-to-use-iskindofclass-against-an-nsstring-instance-to-determine-type – GendoIkari
오. 웬일인지 나는 뒤의 2 개를 가지고 있었다. 나는 isMemberOfClass가 안전하지 않다고 생각했다. 나는 그것이 그것이 선택 자에 반응한다고 말하는 이유를 알고 싶다. 클래스의 유형이 아니라 인스턴스화를 위해서입니까? – RileyE
또는 사용자 instancesRespondToSelector :를 사용해야합니까? – RileyE