我有一個C數組,其中包含用於撤消繪圖應用程序狀態的數據。 (它是一個CGImageRefs數組)但是,由於我無法將C數組聲明爲一個屬性,所有我的實例都訪問同一個數組以供撤銷。什麼是最簡單的方法,以便只有一個對象可以訪問給定的C數組,最好創建一個?防止其他對象訪問C數組
回答
我不能宣佈C數組作爲屬性
當然,您可以:
@property (assign, nonatomic) CGImageRef *imageArray;
其他一些指針:
- You can store CGImageRefs in NSArrays(使用
__bridge
轉換爲id
類型),這通常更容易。 - 您應該使用NSUndoManager來實現撤消管理。
哦謝謝!我正在使用NSUndoManager,但UndoManager使用該數組來恢復更改 - 它使用數組中的imageRef註冊撤消,並將其傳遞給另一個方法。 – PopKernel
爲什麼不直接將CGImageRef直接傳遞給撤消管理器?如果您使用的是NSUndoManager,通常不需要跟蹤撤消管理的任何狀態。 –
嗯,是的,我正在使用,[[self.undoManager prepareWithInvocationTarget:self] performUndoOrRedoWithValueForImage:imageArray [undoCount];我錯過了什麼嗎? – PopKernel
- 1. 防止訪問其他網絡服務
- 2. C#阻止從其他線程訪問所有對象方法
- 3. 其他選項「EVAL」訪問多維數組時,對象內
- 4. 防止網址篡改訪問其他用戶的數據
- 5. 無法訪問其他類的對象
- 6. 訪問其他類的對象
- 7. 訪問其他對象在javascript
- 8. 從其他方法訪問對象
- 9. Android - 訪問其他類的對象(Java)
- 10. 防止在刪除後訪問CoreData對象訪問
- 11. 防止對象切片 - C++
- 12. C++序列化包含其他對象數組的對象
- 13. 訪問數組中的對象與其他對象及其值Values.Squareup返回對象api
- 14. C#防止創建其他表格
- 15. 訪問對象與數組
- 16. 訪問數組與對象
- 17. 訪問數組對象
- 18. JSON數組對象訪問
- 19. 訪問PHP對象數組
- 20. JavaScript數組 - 訪問對象
- 21. Smarty對象數組訪問
- 22. 訪問JSON_encode數組對象
- 23. 訪問PHP對象數組
- 24. 訪問stdClass對象數組
- 25. 訪問數組與對象
- 26. 防止創建其他對話框
- 27. 通過對象數組訪問對象
- 28. 如何從C#中的其他表單訪問一個對象?
- 29. 如何防止用戶訪問其他用戶記錄?
- 30. 防止文件系統訪問和其他破壞性操作
使用'NSArray'屬性,並將'CGImageRef's強制轉換爲'id'來添加它們。 – Gavin
你沒有道理。如果數組是從一個(非公共的)ivar尋址的,那麼該對象的類只能處理它。 –
@HotLicks聽起來像數組是目前全球&OP不知道如何有一個C數組作爲屬性/伊娃 –