![](/img/trans.png)
[英]Getting warning Incompatible pointer types assigning to 'NSMutableData' from NSData
[英]Incompatible pointer types assigning to 'NSMutableData *' from 'NSData *'
我收到錯誤消息
“從'NSData *'分配給'NSMutableData *'的不兼容指針類型”
據我所知,它必須是警告而不是錯誤。 所以我認為我的Xcode Project設置有問題嗎?
這是錯誤的圖像。
這應該是一個錯誤,因為當有人獲得明顯可變的數據並嘗試對其進行突變時,它將在運行時崩潰。
基本上,您不應該做自己在做的事情。 使用mutableCopy
可以確保數據是可變的,或者在調用構造函數時,請確保在NSMutableData
上調用它。
看起來您的self.activeDownload
被聲明為NSMutableData類型,因此編譯器讓您知道該分配無效(即,分配后您無法對數據進行突變)。 只需將NSData
更改為NSMutableData
。
self.activeDownload = [NSMutableData dataWithContentsOfFile:filePath];
您很幸運,這是一個錯誤。 只有完全沒有經驗的程序員才會發出警告。 如果您的代碼中有錯誤,是希望編譯器告訴您還是必須開始調試?
NSMutableData表示可以更改對象。 分配NSData對象意味着您的代碼現在認為可以更改該對象,但是如果嘗試這樣做,則會在運行時崩潰。 那真的是你想要的嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.