由於在Core Foundation中沒有與NSValue對應的對象,我們應該如何將C結構存儲在CFMutableDictionary中?在CFMutableDictionary中存儲C結構
4
A
回答
6
首先,你可以把一個NSvalue放在CFMutableDictionary中,所以答案是「使用NSValue」。但我認爲你的問題的其餘部分是「沒有使用任何Cocoa對象」。在這種情況下,只需創建一個非保留的CFMutableDictionary,並且可以將所需的任何指針放入其中。有關示例代碼,請參閱"Defining Custom Collection Callbacks"。我使用了很多。
請記住,這些仍然是指針,所以你將不得不分配你的結構堆,而不是堆棧。這意味着內存管理現在是你的問題。當然,你可以創建一個自定義的回調函數來完成你想要的任何事情,所以如果你使用boost或者其他的自己的ref-counting系統,你仍然可以用CFMutableDictionary來實現它。
當然,你可以用一個小數據對象替換結構。這通常容易得多。但不同的問題需要不同的解
1
CFMutableDictionary
CFDictionaryAddValue 甲CFType對象或指針值添加到詞典中。
你只是傳遞一個指向你的結構的指針。
相關問題
- 1. 將C結構存儲到MongoDB中
- 2. 在C++構造函數中分配結構數組的存儲
- 3. 結構化存儲
- 4. 存儲日期,哪個結構? C#
- 5. 堆棧存儲結構指針c
- 6. 將多個輸入存儲在C中的結構數組中
- 7. 在C中的GlobalVariables.cs中存儲一個結構數組#
- 8. 將結構存儲在NSArray中
- 9. 在數據結構中存儲邊緣
- 10. 在結構數組中存儲值
- 11. 如何在Java中存儲樹結構?
- 12. 如何在JPA中存儲樹結構?
- 13. 在NSUserdefault中存儲結構swift
- 14. 在結構中存儲字符串
- 15. 數據不存儲在結構中
- 16. 在elasticsearch中存儲結構化日誌
- 17. MATLAB:在結構中存儲的值
- 18. 結構C:將值存儲在數組中
- 19. C新手:在數組中存儲結構
- 20. C:如何將2d char數組存儲在結構中?
- 21. 我如何malloc和存儲在C中的結構變量?
- 22. 如何在Python中存儲C類結構的列表?
- 23. C++:讀取分隔文件並存儲在結構中
- 24. C# - 將結構存儲在設置文件中
- 25. Autorelease CFMutableDictionary
- 26. 保存結構在C
- 27. 如何在C中存儲和檢索結構到共享內存區域中
- 28. 數據結構存儲
- 29. 存儲樹結構的Redis
- 30. 存儲向量的結構
哇,我絕對應該看起來更接近文件。我是否需要提供自定義回調,還是可以直接使用它? – 2009-07-30 00:03:56
當指向結構體的指針交給默認的retain方法時,會崩潰,該方法需要CFType。你必須重載回調才能使其工作。 – 2009-07-30 00:05:41