【Swift】Swift 자습서에서 오류
튜토리얼
"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
로 다운 캐스트합니다.참고
iOS도 처음 시작했지만 최선을 다할 것입니다
Reference
이 문제에 관하여(【Swift】Swift 자습서에서 오류), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/taji-taji/items/dbb54afc0ea74d68610d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)