[英]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()中的變量觸發分配給它的內存被覆蓋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.