簡體   English   中英

從“ NSData *”分配給“ NSMutableData *”的指針類型不兼容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM