【Swift】Swift 자습서에서 오류

3198 단어 iOSSwift애플
Swift 시작 Apple 튜토리얼을 따라 샘플 앱을 만들 때 발생한 오류입니다.

튜토리얼



"FoodTracker"라는 샘플 앱을 만들면서 Swift와 Xcode에 대해 배울 수 있습니다.

오류



위의 튜토리얼을 순조롭게 진행해 가고, 마지막 마지막, 「Persist Data」의 레슨으로 이하의 에러를 만났습니다.
Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeInt64ForKey:]: value for key (rating) is not an integer number'

이 레슨에서는 앱 내에서 추가, 편집, 삭제한 요리의 데이터(요리 이름, 이미지, 요리의 평점)를 파일에 저장할 수 있는 레슨입니다.

문제의 부분은 Meal.swift의 다음 부분입니다.

Meal.swift

let rating = aDecoder.decodeIntegerForKey(PropertyKey.ratingKey)


위의 코드에서도 문제없이 컴파일되었으며 앱도 작동했습니다.
그러나 데이터 저장이 가능해지면 한 번 앱을 떨어뜨려 다시 시작할 때 오류가 발생했습니다.
저장된 데이터를 읽을 때 어떤 일이 일어난 것 같습니다.

해결 방법



이하 URL과 같습니다


Meal.swift

// let rating = aDecoder.decodeIntegerForKey(PropertyKey.ratingKey)

let rating = aDecoder.decodeObjectForKey(PropertyKey.ratingKey) as! Int

decodeIntegerForKey 대신 decodeObjectForKey를 사용하여 Int로 다운 캐스트합니다.

참고


  • htps : //로 ゔぇぺぺr. 아 ぇ. 코 m / ぃ b 등 ry / p 레레 아세 / 이오 s / 레후 렌세 ぃ b 라 ry / 갓찐 gS ta d / ゔ ぇ10. HTML # // / p p_re f / c / 우이 d / TP40015214-CH14-SW1
  • h tp : / / s tac ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 31086593 / x 코데 린 신 ゔ ぃ 즈나 r ゔ ぇ 오페 라 치오 네 x 세 p ゔ ぇぇ

  • iOS도 처음 시작했지만 최선을 다할 것입니다

    좋은 웹페이지 즐겨찾기