尝试编写表视图时,“线程1信号SIGABRT”

时间:2015-02-22 22:29:30

标签: ios iphone xcode swift

我的viewcontroller.Swift如下:

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()


        let sharedDefaults = NSUserDefaults(suiteName: "group.devoncarlson.sinceextentionsharingefaults")

        sharedDefaults?.setObject("Hi I'm a Widget", forKey: "stringKey")

        sharedDefaults?.synchronize()


    }

    var eventInArray = ["Drinking"]


    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // Return the number of rows in the section.
        return eventInArray.count
    }
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) ->
        UITableViewCell {
        let cellIdentifier = "Cell"
        let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath:
        indexPath) as UITableViewCell
        // Configure the cell...
        cell.textLabel?.text = eventInArray[indexPath.row]
        return cell 
    }

    //        cell.textLabel.text = eventInArray[indexPath.row]


     override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

造成这种情况的原因是什么?它是在将我的表视图链接到我的代码后开始的。请解释你的答案,好像是一个五岁的孩子,我对编程非常陌生。

4 个答案:

答案 0 :(得分:0)

当您右键单击或cmd-单击并拖动到小视图控制器图标时,将其连接到它为您提供的两个选项,我相信您必须连接到视图控制器和委托。对不起,暂时不在我的Mac上,或者我更具体,但我非常确定你与tableview的联系是做什么的。

答案 1 :(得分:0)

您的问题出在以下几行:

let cellIdentifier = "Cell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath:
        indexPath) as UITableViewCell

如您所见,您将cellIdentifier设置为“Cell”。现在在您的UITableViewcontroller中,您还需要设置标识符。要做到这一点,只需单击Storyboard中UITableViewController的单元格并设置单元格标识符:

enter image description here

答案 2 :(得分:0)

我遇到了与您相同的错误并找到了修复程序,请确保该名称与标识符中的名称相同。还要确保您在App Delegate中具有相同的名称。如果您按照this tutorial尝试将Cell的名称更改为MyCell。

答案 3 :(得分:0)

错误在于这些代码行:

let cellIdentifier = "Cell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath:
        indexPath) as UITableViewCell

您必须as!而不是as
并使您的TableViewCell具有标识符:例如,标识符是ExampleIdentifier,然后将ExampleIdentifier放在单元格的{.swift文件中的这两个位置您必须将文件命名为ExampleIdentifier!
然后,如果你继续使用Menu.storyboard,并点击单元格make,这个单元格具有相同的标识符(此处为ExampleIdentifier),因此单元格与她的文件链接然后,单元格有一个标识符,所以输入这段代码

let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath:
        indexPath) as UITableViewCell

let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath:
        indexPath) as! ExampleIdentifier

我希望我能帮到你