NSString을 NSDictionary의 키로 사용할 수 있습니까? 어떤 물체를 사용할 수 있고 어떤 물체를 사용할 수 없는지 어떻게 알 수 있습니까? documentation 가입일NSDictionary에서 어떤 클래스를 키로 사용할 수 있습니까?
0
A
답변
6
: 일반적
는 키 (는
NSCopying
프로토콜을 준수한다) 개체 일 수 있지만 (키 값을 사용할 때, 키 코딩 스트링이어야 유의 “Key-Value Coding Fundamentals” 참조).
문자열 외에 복사 가능한 것을 사용할 수 있지만 KVC에는 문제가 있습니다. 나는 물건을 안전하고 일관성 있고 단순하게 유지하기 위해 열쇠 용 문자열을 사용한다.
2
NSCopying을 준수하는 모든 것을 사용할 수 있습니다. 즉 NSCoding
프로토콜을 준수하는 한 id
유형의 개체를 사용할 수 있습니다.
키가 NSString 인 경우 검색을 위해 isEqualToString :이 호출됩니다. 그렇지 않으면 객체에서 isEqual :이 호출되어 키가 요청 된 키와 일치하는지 여부를 확인합니다.
키 (및 해당 값)는 nil
또는 NULL
일 수 없습니다. 그러나 그들은 [NSNull null]
일 수 있습니다.
관련 문제
- 1. NSDictionary에서 프로토콜 객체를 키로 사용할 수 있습니까?
- 2. iOS/Cocoa : NSDictionary에서 URL을 키로 사용합니다.
- 3. QPointer를 std :: map의 키로 사용할 수 있습니까
- 4. 클래스를 포인터로 사용할 수 있습니까?
- 5. 어떤 SmtpStatusCodes를 사용할 수 있습니까?
- 6. 어떤 Adpater를 사용할 수 있습니까?
- 7. 인스턴스 변수를 연관 배열의 키로 사용할 수 있습니까?
- 8. STL 맵에서 키에 사용자 정의 클래스를 사용할 수 있습니까?
- 9. 웹 서비스에 부분 클래스를 사용할 수 있습니까?
- 10. Apache Ant는 IOUtil 클래스를 사용할 수 있습니까?
- 11. 로거에 정적 클래스를 사용할 수 있습니까?
- 12. 프로젝트에서 Magento의 클래스를 사용할 수 있습니까?
- 13. 추상 클래스를 참조 유형으로 사용할 수 있습니까?
- 14. c에서 serialport 클래스를 사용할 수 있습니까?
- 15. PHP에서 중첩 클래스를 사용할 수 있습니까?
- 16. JRuby에서 Java 클래스를 생성하고 Java 클래스를 사용할 수 있습니까?
- 17. MySQL의 기본 키로 UUID를 사용할 때 성능에 어떤 영향을 줄 수 있습니까?
- 18. 메쏘드를 캡슐화하는데 어떤 서비스 클래스를 사용할 것인가?
- 19. C# : 표현식이나 함수를 사전의 키로 사용할 수 있습니까?
- 20. 어떻게 MATLAB 배열을 HashMap Java 객체의 키로 사용할 수 있습니까?
- 21. 어떻게 boost :: thread :: id를 unordered_map의 키로 사용할 수 있습니까?
- 22. StarTeam에서는 어떤 검색 옵션을 사용할 수 있습니까?
- 23. 어떤 C++ 프로파일 러를 사용할 수 있습니까?
- 24. 하위 쿼리는 어떤 위치에서 사용할 수 있습니까?
- 25. 어떤 .NET Framework에서 DotNetOpenAuth를 사용할 수 있습니까?
- 26. 아직 어떤 키보드 매핑을 사용할 수 있습니까?
- 27. WebKit에서 어떤 기능을 사용할 수 있습니까?
- 28. ListBox에서 어떤 FontFamily 글꼴을 사용할 수 있습니까?
- 29. 어떤 데이터베이스 프로그램을이 용도로 사용할 수 있습니까?
- 30. VisualSVNServerHooks.exe에는 어떤 옵션을 사용할 수 있습니까?
+1 : 좋은 정보 .. – Jhaliya
왜 사람들은 질문을하고 귀찮게 답변을 확인하지 않습니까? – David
사전에 'NSNull'을 키로 사용할 수는 있지만, 그것은 싱글 톤이므로 하나 이상의 항목을 가질 수는 없습니다. 이것은 빈 값을위한 자리 표시자를위한 것입니다. –