2015-02-14 2 views
0

Я пытался научиться делать пользовательские ячейки UITableView и искал примеры на youtube. Однако они всегда приходят с ошибкой, когда я запускаю их.Отсутствуют коды инициализации в .swift файлах

Я смотрел на это видео https://www.youtube.com/watch?v=rIRvqRzOa-s, и я заметил, что, когда они впервые создали новый файл .swift он имел этот код:

init(style: UITableViewStyle){ 
super.init(style: style)} 

Когда я создал мой .swift файл его не было этого в нем , Мне интересно, почему именно мои таблицы не работают. В настоящее время я использую Xcode 6.1.1. Я попытался просто ввести код, но это тоже не сработало. В любом случае, чтобы исправить это или это ошибка?

EDIT:

поэтому полный код, который я использовал для maintableviewcontroller.swift:

import UIKit 

var ArrayObject = ArrayData() 

class MainTableViewController: UITableViewController 

override func viewDidLoad() { 
    super.viewDidLoad() 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 
override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 

    return 1 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

    return ArrayObject.MyArray().count 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    var cell:MyCustomTableViewCell = tableView .dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as MyCustomTableViewCell 
    cell.LabelForDisplay.text = ArrayObject.MyArray().objectAtIndex(indexPath.row) as String 
    return cell 
} 

}

Mycustomtablecell.swift:

import UIKit 

class MyCustomTableViewCell: UITableViewCell { 



@IBOutlet var LabelForDisplay: UILabel! 


override func awakeFromNib() { 
    super.awakeFromNib() 

} 

override func setSelected(selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 


} 

} 

и ArrayData.swift:

import UIKit 

class ArrayData: NSObject { 


func MyArray() -> NSMutableArray 
{ 
    var Arraydatas:NSMutableArray = ["Effect Works", "NPN Labs", "Alvin", "Varghese"] 
    return Arraydatas 
} 


} 

ошибка я получаю был "нить 1 SIGTERM"

Спасибо!

+0

Это все ваш код? Разве у вас нет класса? Какое сообщение об ошибке вы получаете? – HAS

+0

Нет, это не весь мой код. Это было то, чего не хватало в моем коде по сравнению с видео. – lillylilly

+0

Можете ли вы разместить свой полный код, пожалуйста? Я нахожусь на мобильном телефоне и не могу смотреть видео прямо сейчас. – HAS

ответ

0

Если вы хотите создать UITableViewController вместо выбора File > New > File... > Swift File

сделать File > New > File... > Cocoa Touch Class > Class: MainTableViewController > Subclass of: UITableViewController

Таким образом, вы будете иметь весь необходимый код для запуска, нет необходимости, чтобы скопировать его из учебников.

+0

Спасибо. Я действительно открывал его в классе касания какао именно так, а не в быстром файле. Но код init все еще отсутствует. Может быть, это версия Xcode, которую использует человек, отличается от моей? – lillylilly

+0

Swift начал поставки с первой версией Xcode 6, невозможно скомпилировать код Swift с более ранними версиями Xcode. Когда вы создаете класс, вы получаете бесплатный init(), вы не видите его в коде, но он есть. Вы можете сделать свое собственное использование init(), но если вы решите сделать это, и ваш класс наследует от другого класса, вы также должны «переопределить» ваш суперкласс init() и вызвать super. – leonarth