我有一個關鍵字不被複制的字典的要求。這導致了我快樂的舞蹈,並且我已經結束了CFMutableDictionary的大門。NSMutableDictionary vs CFMutableDictionary
我想了解它們可以互換的程度。在蘋果公司的文檔進行CFMutableDictionary他們的狀態:
在你看到一個NSMutableDictionary *參數的方法,您可以 通在CFMutableDictionaryRef,並在功能在那裏你看到一個 CFMutableDictionaryRef參數,你可以在傳遞 NSMutableDictionary實例。
但我想知道是否有可能將CFMutableDictionary轉換爲NSMutableDictionary並調用NSMutableDictionary的方法,並且在某些情況下,您可以;
如果我使用CFDictionaryCreateMutable()創建CFMutableDictionary並將其轉換爲NSMutableDictionary。
我可以打電話:
[cfDictionaryCastToNSDictionary objectForKey:someKey]
我也可以撥打:
[cfDictionaryCastToNSDictionary setObject:someObject forKey:someKey]
...這將複製鍵或拋出一個異常,如果它沒有實現NSCopying。我也可以使用for循環遍歷它的值。
但是如果我打電話:
[cfDictionaryCastToNSDictionary count]
我得到一個異常。
我的問題是在這裏引發了什麼? Apple文檔沒有提到能夠通過強制轉換爲NSDictionary來調用CFMutableDictionary中不存在的某些方法。
如果您的目標是桌面Cocoa,請查看'NSPointerArray'。 –
你會得到哪個例外?調用'count'應該可以很好地工作。 – DarkDust
不幸的是我的目標是移動。我很震驚,沒有什麼像NSPointerArray可用。 – Undistraction