Swift 2, 경고 : dyld 공유 캐시에서 Objective-C 클래스 정보를로드 할 수 없습니다.
이 문제와 관련하여 몇 가지 질문을 찾았지만 그중 어느 것도 내 문제를 해결하지 못했습니다. 이 코드를 사용하여 객체를 핵심 데이터에 저장하려고합니다 (Xcode 6 및 Simulator에서 완벽하게 작동했습니다 ...).
let fetchRequest = NSFetchRequest(entityName: "Patient")
let fetchedResults : [NSManagedObject]!
do {
fetchedResults = try managedContext.executeFetchRequest(fetchRequest) as! [NSManagedObject]
patienten = fetchedResults
} catch {
print("error")
}
Xcode 7 베타 및 물리적 장치에서이 프로젝트 작업을 시작하면 do-try-catch를 추가했습니다. 이제 저장 버튼을 누르면이 코드가 호출되고 앱이 정지되고 다음과 같은 결과가 나타납니다.
경고 : dyld 공유 캐시에서 Objective-C 클래스 정보를로드 할 수 없습니다. 이렇게하면 사용 가능한 유형 정보의 품질이 크게 저하됩니다.
아무도 내가 어디에서 잘못되었는지 알고 있습니까?
미래에 이것을 접하는 사람을 위해, 나는 방금이 문제에 부딪 쳤고 실제로 재귀 함수에서 스택 오버플로가 발생하고 있음이 밝혀졌습니다.
분명히 setValue:forKey:
NSObject를 호출하면 각 set[Key]
함수가 호출 됩니다. 여기서는 섹션에 [Key]
지정한 (대문자로 표시된) 이름 forKey
입니다.
따라서 저처럼 다음과 같은 코드가 있으면 무한 루프와 충돌이 발생합니다.
func setName(name: String) {
self.setValue(name, forKey: "name")
}
선택 Product
>Clean
비슷한 문제가있었습니다. 기기에서 앱을 삭제했습니다. 그런 다음 XCode 메뉴에서 "Product-> Clean"을 선택합니다. 앱을 다시 실행하면 문제가 해결되었습니다.
스위프트 3 :
실제로이 문제는 입력에 유형으로 선언 된 속성이 NSError
있고 컴파일러가 Error
출력을 예상 할 때 자주 발생 하므로 Error
일반적으로이 문제를 해결 하려면 입력 유형을 변경하십시오 .
비슷한 문제 (xCode 7, Swift 2)에서 나를 도왔던 것 :
이 질문을 읽고
또는 솔루션의 이유를 설명하지 않고 더 빨리 CoreData Entity에서 생성 된, ( -귀하의 경우)에 주석 @objc(className)
을 NSManagedObjectSubclass
달면 @objc(Patient)
됩니다.
이 솔루션 (문제가 계속 나타나는 경우)은 생성 방법 NSManagedObjectSubclasses
이 변경 되었으므로 xCode 7.1 / Swift 2.1에는 적용되지 않습니다 .
프로젝트를 정리 ( Product > Clean
)하고 장치 / 시뮬레이터에서 앱을 삭제하여 CoreData 스토리지를 교체하는 것을 잊지 마십시오 .
let fetchRequest = NSFetchRequest(entityName: "Patient")
do {
let fetchedResults = try managedObjectContext!.executeFetchRequest(fetchRequest)
print("\(fetchedResults)")
} catch {
print("error")
}
위의 코드는 저에게 효과적이었습니다. 핵심 데이터를 관리하는 방법에 문제가있을 수 있습니다.
managedObjectContext
실제로 생성 되는지 확인하십시오 .- 핵심 데이터의 모델링 확인
'programing' 카테고리의 다른 글
심층 분할기 특성 이해 (0) | 2021.01.16 |
---|---|
C #으로 웹캠 비디오를 스트리밍하려면 어떻게해야합니까? (0) | 2021.01.16 |
자동 증가 기본 키를 사용하는 경우와 사용하지 않는 경우 (0) | 2021.01.16 |
글꼴 색상 속성의 이상한 것이 실제 색상을 생성하는 이유는 무엇입니까? (0) | 2021.01.16 |
속성 대신 마커 인터페이스를 사용하는 설득력있는 이유 (0) | 2021.01.16 |