Objective-C에 대한 적절한 지식이 있다는 점을 감안할 때 Swift 언어를 배우고 있습니다. Swift 프로젝트에서 스토리 보드를 제거해야했습니다. 스토리 보드 파일을 제거하고 각 plist 키를 제거하고 XIB를 사용하여 새 뷰 컨트롤러를 추가하고 Application delegate에 다음 코드를 추가했습니다.
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.mainScreen().bounds)
if let window = window {
window.backgroundColor = UIColor.whiteColor()
window.rootViewController = FirstViewController()
window.makeKeyAndVisible()
}
return true
}
FirstViewController의 XIB에 단일 레이블을 추가하고 적절한 자동 레이아웃 제약 조건도 추가했습니다.
문제는 viewDidLoad
FirstViewController가 호출되고 있지만 레이블을 볼 수 없다는 것입니다 . 나중에 다음 코드 IBOutlet
를 사용 viewDidLoad
하여 프로그래밍 방식으로 레이블을 추가 하고 텍스트를 설정했습니다 .
lblHello!.text = "Hello !!!"
이 단계에서 오류가 발생합니다.
"치명적인 오류 : 선택적 값을 언 래핑하는 동안 예기치 않게 nil이 발견되었습니다."
나는 모든 File's owner
것과 다른 IBOutlet
것들을 교차 확인했습니다 . 누락 된 것이 없습니다.
어리석은 실수로 빠진 것이 있으면 알려주세요. 이 경우에 추가로해야 할 일이 있습니까?
이것은 내 스 니펫이고 작동합니다.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window!.backgroundColor = UIColor.whiteColor()
self.window!.rootViewController = ViewController()
self.window!.makeKeyAndVisible()
return true
}
그리고 viewDidLoad()
의FirstViewController.swift
class ViewController: UIViewController {
@IBOutlet var lblTitle:UILabel?
//MARK: - View lifecycle
override func viewDidLoad() {
super.viewDidLoad()
self.lblTitle!.text = "Hello....!!!"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다