2016-03-21 6 views
0

Я следовал учебник Apple, для начала работы с Swift здесь: https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson3.html#//apple_ref/doc/uid/TP40015214-CH22-SW1Настройка делегат = сам вызывает тему 1: exc_bad_instruction (код = exc_i386_invop субкодовые = 0x0)

Я делаю почти то же самое, но для некоторых причина articleLink.delegate = self дает мне

Thread 1: exc_bad_instruction (code=exc_i386_invop subcode=0x0)

и

fatal error: unexpectedly found nil while unwrapping an Optional value

Я действительно путают о том, почему это происходит потому, что я буквально следуя шаг учебник Apple, за шагом для этой части ...

import UIKit 
import Alamofire 

class ViewController: UIViewController, UITextFieldDelegate { 
    // MARK: Properties 
    @IBOutlet weak var articleLink: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Handle the text field's user input through delegate callbacks 
     articleLink.delegate = self // ERROR OCCURS HERE 
    } 

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

    // MARK: UITextFieldDelegate 
    func textFieldShouldReturn(textField: UITextField) -> Bool { 
     // Hide keyboard 
     textField.resignFirstResponder() 
     return true 
    } 

    // MARK: Actions 

    @IBAction func submitLink(sender: AnyObject) { 
    } 
} 

ответ

2

articleLink является неявно развернутая по желанию UITextField, вы поручив компилятор что он никогда не будет ник. articleLink.delegate = пытается получить доступ к этому свойству, чтобы установить его делегат и встретить нуль необязательный, то, что вы обещали, никогда не произойдет.

Поскольку это свойство является IBOutlet Похоже, вам не удалось подключить представление к этой розетке при настройке файла нибы. Если бы вы это сделали, свойство было бы установлено до того, как вызывается viewDidLoad.

+0

Спасибо! Я довольно новый для Свифта. Как мне это исправить? – user6091470

+0

Похоже, что вы либо пропустили часть шага 8 в этом учебнике, либо внесите изменения после создания розетки, которая нарушила соединение. Вам нужно будет проверить, все ли в вашем устройстве все еще подключены к этой розетке, есть пример того, где найти это в интерфейсе: https://developer.apple.com/library/ios/recipes/xcode_help- IB_connections/главы/Connections.html # // apple_ref/DOC/UID/TP40014227-CH20-SW1 – Jonah