그래프 강좌 실행시 Thread오류 납니다.

미해결질문
vampireahn 프로필

class ViewController: UIViewController {

@IBOutlet weak var graph1Height: NSLayoutConstraint!

@IBOutlet weak var graph2Height: NSLayoutConstraint!

@IBOutlet weak var graph3Height: NSLayoutConstraint!

@IBOutlet weak var graph4Height: NSLayoutConstraint!

@IBOutlet weak var graph5Height: NSLayoutConstraint!

override func viewDidLoad() {

super.viewDidLoad()

graph1Height = graph1Height.changeMultiplier(value: 0.9 as! CGFont) <- Thread 오류

graph2Height = graph2Height.changeMultiplier(value: 0.8 as! CGFont)

graph3Height = graph3Height.changeMultiplier(value: 0.7 as! CGFont)

graph4Height = graph4Height.changeMultiplier(value: 0.8 as! CGFont)

graph5Height = graph5Height.changeMultiplier(value: 0.5 as! CGFont)

}

}

extension NSLayoutConstraint {

func changeMultiplier(value: CGFont) -> NSLayoutConstraint {

    NSLayoutConstraint.deactivate([self])

let newConstraint = NSLayoutConstraint.init(item: self.firstItem!, attribute: self.firstAttribute, relatedBy: self.relation, toItem: self.secondItem, attribute: self.secondAttribute, multiplier: value as! CGFloat, constant: self.constant)

newConstraint.priority = self.priority

newConstraint.shouldBeArchived = self.shouldBeArchived

newConstraint.identifier = self.identifier

NSLayoutConstraint.activate([newConstraint])

return newConstraint

}

}

iOS Developer 프로필
iOS Developer 7달 전

안녕하세요

changeMultiplier 안에

DispatchQueue.main.async {

...

...

}

이렇게 main queue로 감싸고 실행해 보시면 스레드 문제는 해결될 겁니다.

vampireahn 프로필
vampireahn 7달 전

역시 스레드 에러 납니다 ㅠㅠ

iOS Developer 프로필
iOS Developer 7달 전

댓글다신 코드에 타입이 잘못되어 있네요

CGFont로 되어 있는 부분을 모두 CGFloat으로 변경하시면 해결될 겁니다.

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스