簡體   English   中英

Swift輸出覆蓋變量

[英]Swift Output Overwrites Variables

我正在使用Xcode6 Beta 3在Swift中進行iOS8項目開發,但是我遇到了一個問題,我可以在一行上打印出一個變量,但是該變量的內容被替換為看上去很垃圾的東西。 這兩行連續,它們之間絕對沒有其他代碼:

println("Data segment 0: \(dataSegments[0])")
println("Data segment 0: \(dataSegments[0])")

打印出不同的值(它們恰好是NSData數組的元素)。 第一個打印出我期望的結果,但是第二個打印出其他內容。

另外,如果我恢復調用從中獲取數據的函數:

println("Data segment 0: \(getCharacteristicData()[0])")
println("Data segment 0: \(getCharacteristicData()[0])")

第一個完全符合我的期望(它輸出的內容與第一個代碼塊的第一行相同),但是第二次,getCharacteristicData()崩潰並導致訪問錯誤。 同樣,這些行是連續的,在它們之間沒有其他代碼執行。

我一直在使用這種樣式輸出達數周之久,直到今天都沒有任何問題。 任何想法可能是什么原因造成的? 是Swift的錯誤,還是有一些很好的理由破壞了我的數據?

編輯:我更新為beta4。當我使用getCharacteristicData()時,我不再受到錯誤的訪問,但是第一段代碼仍然存在相同的問題。

更新:原來這是我代碼中其他地方的一個單獨的內存釋放問題,並且使用println()中的變量觸發分配給它的內存被覆蓋。

這些行是否像您的示例中那樣緊挨着?

如果不; 您很可能會遇到這樣一個事實,即在前幾個Beta中打破了快速數組不變性 嘗試升級到Beta 4。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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