Xcode 8에서 새로운 OS X 프로젝트를 만들었습니다. 단일 (이미지)보기가 추가되었습니다. @IBOutlet ("image")를 추가하기 위해 기본 ViewController 소스로 드래그했습니다. 그런 다음 viewDidLoad()
에, 나는 추가 :wantLayer = true가 된 후 레이어가 nil이되는 이유는 무엇입니까?
image.wantsLayer = true
image.layer!.cornerRadius = 10
, 그것을 잘 작동, 약 절반의 시간, 그것은으로 사망 :
fatal error: unexpectedly found nil while unwrapping an Optional value
두 번째 줄에서 가리키는 동안, 그리고에 디버거 :
(lldb) po image.wantsLayer
true
(lldb) po image.layer
nil
즉시 layer
을 만들 예정 wantsLayer
설정되어 있습니까? 설명서에이 제안이있는 것 같지만이 사실을 알리는 진술을 찾을 수 없습니다. 내가 NSView의를 만드는 코드를 많이, like this을 본 적이
는 수행
self.wantsLayer = true
self.layer!.backgroundColor = ...
그래서 그것이로한다고처럼 보인다. wantsLayer
을 설정 한 후 layer
이 0이되지 않는 이유는 무엇입니까? wantsLayer
을 요청하더라도 직접 layer
을 설정해야합니까?
볼 https://www.objc.io/issues/14-mac/appkit-for-uikit-developers/하는 층 백업 소송을 제기하는 방법에 대한 몇 가지 경고를 제공합니다 레이어 개체보기 – Volker
Volker : 멋진 리소스! 내가 여기서 얻는 것은 내가 게시 한 것을하는 모든 코드가 실제로 잘못되었으며, CALayer에 속성을 설정하려면'wantsUpdateLayer' 경로를 사용해야한다는 것입니다. (그건 내 문제 중 하나를 해결하지만 전부는 아닙니다.) "대답"으로 게시하면 받아 들일 것입니다. – Naha