2016-01-22 121 views
2

在我的應用程序中,我有ViewController類。在這個類中,我有實例變量隊列,它是Int類型的數組。在其中一個函數中,我需要爲這個數組的其中一個元素指定一個Int類型的值。該應用程序的構建沒有任何錯誤和警告,可以完美運行,直到它將EXC_BREAKPOINT僅引發到我有此分配的位置(在名爲findPath的函數中)。下面的代碼:無法在Swift 2.1中將int類型的值賦予Int數組的元素

class ViewController: UIViewController { 

    var queue = [Int]() 

    func findPath(source: Int, target: Int) { 

      queue[0] = 0 // here comes the EXC_BREAKPOINT 

    } 

} 

沒關係,我想分配給該元素,其值爲:0,-1,1000等,它總是會拋出異常。

我正在使用最新版本的Xcode 7.2 7C68,最新的iOS 9.2 SDK。我正在部署到8.1並在板載的iOS 8.1.2上測試我的iPhone 5S上的應用程序。

+0

你試過'self.queue.add(0)'嗎? –

+0

你不需要追加'queue.append(0)' –

+0

你試圖改變一個不存在的元素的值 –

回答

2
var queue = [Int]() 

上面的代碼創建了一個int數組的新實例,但是這個實例還沒有任何值。在您當前的代碼中,您正嘗試訪問queue數組中的第一個值......因爲在給定索引處沒有值,所以會出現錯誤。

如果你想將值添加到一個新的數組,你可以用追加做到這一點:

var queue = [Int]() 

func findPath(source: Int, target: Int) { 
    // do this to populate a new array 
    queue.append(1) 
} 

如果你正在尋找新的設定值,在已經可以做到這一點值的數組:

var queue = [0, 1, 2] 

func findPath(source: Int, target: Int) { 
    // do this to change values in an existing array 
    queue[0] = 0 
} 
+0

謝謝,它的工作原理! – vanelizarov

+0

很高興能幫到你! –

相關問題