2010-04-25 9 views
5

개체 값의 복사본이 아니라 개체의 참조 값을 사전에 키로 사용하고 싶습니다. 그래서, 나는 다른 객체의 특정 인스턴스와 관련된 객체를 사전에 저장하고 나중에 그 값을 검색하려고합니다.사전에 키로 사용되는 개체 포인터 값

이것이 가능합니까? 그것은 NSDictionary의 아이디어에 완전히 반대입니까? 사전이 객체 자체에 NSCopying을 구현하기를 원하기 때문에 잘못된 방식으로 접근하고 있음을 알 수 있습니다. 실제로는 내가하는 일에 대해 의미가 없습니다. 포인터 값을 래핑하는 것이 실제로 가능해야한다는 것을 알 수 있습니다.

조언을 부탁드립니다.

답변

2

NSMutableDictionary은 Objective-C 개체 인스턴스 만 처리하도록 설계되었습니다. 예를 들어, setObject:forKey: 메서드 호출 할 때 copyWithZone: 키 및 retain 값을 호출하십시오.

사전 구조를 갖고 임의의 키와 값을 처리하려면, CFMutableDictionary을 사용할 수 있습니다. 키와 값으로 수행되는 작업을 정확하게 설명 할 수 있습니다. 임의의 포인터 또는 이벤트 char * 문자열을 처리하기에 충분히 유연합니다.

11

[NSValue valueWithPointer:object]을 사용할 수 있다고 생각합니다.

+0

위해 속임수를 썼는지! –

0

이 오히려 잘 덕분에 일을 나

aDictionary[@((intptr_t)object)] = ...;