2014-09-10 4 views
1

Просто новичок в программировании ios и решил начать кодирование приложения ios с помощью быстрого языка Xcode 6.1.DrawView crashes ios xcode 6

Я создал новый проект. Затем добавлен новый класс DrawView класса Cocoa. Затем щелкнул основной вид main.storyboard и в инспекторе идентификации поместил int field field - DrawView.

Тогда я выбрал DrawView.swift - раскомментируйте метод DrawRect и поместить в нее

var context:CGContextRef = UIGraphicsGetCurrentContext() 
CGContextClearRect(context, self.bounds) 

и начал проект, проблема

Path/DrawView.swift: 11: 11: fatal error: use of unimplemented initializer 'init(coder:)' for class '_d_Quartz1.DrawView'

Что Шоуда я в Одер, чтобы избежать этой проблемы ?

Весь код:

class DrawView: UIView { 

    init(frame: CGRect) { 
     super.init(frame: frame) 
     // Initialization code 
    } 
    override func drawRect(rect: CGRect) 
    { 
     var context = UIGraphicsGetCurrentContext() 
     CGContextClearRect(context, self.bounds) 
    } 
} 
+1

показать нам все содержимое 'DrawView.swift'. –

ответ

-2

You'r отсутствует это:

required init(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

Просто добавьте это в свой класс, он должен работать.

Обновление: Перейдите по этой ссылке, чтобы получить подробный ответ, когда переопределить этот метод: Class does not implement its superclass's required members

+0

Этот ответ был бы лучше, если бы вы также могли объяснить _why_ это необходимо. Какую цель «initWithCoder» сравнивают с «initWithFrame» и т. Д. –

+0

Вот объяснение: http://stackoverflow.com/questions/25126295/swift-class-does-not-implement-its-superclasss-required-members – puru020

+2

Реальная проблема с этим ответом заключается в том, что он не исправит исходную проблему, потому что Olexiy загружает свой DrawView из раскадровки, что требует правильной реализации init (coder:) ', а не с помощью fatalError. Тем не менее, это на правильном пути. Я удалю свой downvote, если он исправлен. –