홈>
안녕하세요, Userdefaults에 데이터를 저장하려고하지만이 작업을 실행할 때마다 응용 프로그램의 페이지에 이미지에 표시된 것처럼 스레드 1 : EXC_BAD_INSTRUCTION (code = EXC_I386_INVOC)이 표시됩니다.
이전에, 나는 지금 당장 얻는 것과 같은 정확한 오류를 겪었지만 지금은 이미지에서 볼 수있는 것처럼이 현재의 선에서오고있다. 앱을 시작할 때마다 데이터를 저장하기 위해이 문제를 해결하려면 어떻게해야하나요?
var highScore = 0
var bronzeStatus = 0
ViewDidLoad :
let defaults = UserDefaults.standard
highScore = defaults.value(forKey: "Add1High") as! NSInteger!
bronzeStatus = defaults.value(forKey: "bronzeMed") as! NSInteger!
아래 :
if correctNumber > highScore {
highScore = correctNumber
let defaults = UserDefaults.standard
defaults.setValue(highScore, forKey: "Add1High")
defaults.synchronize()
}
if highScore >= 15 {
let defaults = UserDefaults.standard
let bronzeAlert = UIAlertController(title: "New Medal!", message: "You earned a bronze medal!", preferredStyle: UIAlertControllerStyle.alert)
bronzeAlert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
self.present(scoreAlert, animated: true, completion: nil)
bronzeStatus = 1
defaults.setValue(bronzeStatus, forKey: "bronzeMed")
defaults.synchronize()
}
- 답변 # 1
- 답변 # 2
Swift 3.0 코드
와이즈 비즈
와이즈 비즈this code work parfect..
var highScore = 0 var bronzeStatus = 0
- 답변 # 3
이것을 사용하여 사용자 기본값의 종료 여부를 확인하십시오
ViewDidLoad:
조건이 있기 때문에
인 경우
correctNumber>highScore {}이 부분이 실행되거나 실행되지 않을 수 있으므로 확인해야합니다
//set integer type data UserDefaults.standard.set(20, forKey: "Add1High") UserDefaults.standard.set(30, forKey: "bronzeMed") //Get integer type data let defaults = UserDefaults.standard highScore = defaults.integer(forKey: "Add1High") bronzeStatus = defaults.integer(forKey: "bronzeMed") print("\(highScore)\(bronzeStatus)") //2030
관련 자료
- Asynchronous thread in Swift - swift의 비동기 스레드 - 처리하는 방법?
- ios - 신속한 싱글 톤 클래스는 EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0) 오류
- xcode - UserDefaults는 사용자 정의 스위프트 클래스 속성을 저장하지 않습니다
- ios - 새 화면을 시작할 때 Swift가있는 XCode의 스레드 오류
- ios - 스레드 1 - sigabrt 신호
- concurrency - 빠른 - dispatchqueues가 동일한 스레드에서 실행되는 것을 방지하는 방법은 무엇입니까?
- ios - UIApplication 델리게이트는 기본 스레드에서만 사용해야합니다빠른
- Swift 문자열을 이스케이프 된 유니 코드로 인코딩 하시겠습니까?
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
사용해보십시오
반환 된 값을 NSInteger로 변환합니다. 값이 NSNumber 인 경우 -integerValue의 결과가 리턴됩니다. 값이 NSString 인 경우 가능하면 NSInteger로 변환됩니다. 값이 없거나 정수로 변환 할 수 없으면 0이 반환됩니다. 따라서 사용자가 직접 변환 할 필요가 없습니다.
사용 설정 중