2014-07-23 7 views
2

저는 최근에 내 응용 프로그램을 위해 CoreData와 함께 작업했습니다. 이상하게도 iOS 7.x가 설치된 iPad Air에서만 충돌이 발생합니다. 물리적 인 장치와 iOS 시뮬레이터에서 모두 실행되었습니다. 결코 공중에서 충돌하는 데 실패하지 않으며 항상 다른 곳에서 실행됩니다. 충돌은 첫 번째 줄은 전무을 반환하지 않습니다 특히, CoreData 호출 내 중 하나에NSEntityDescription은 iPad Air 7.1에서만 nil을 반환합니다.

var childEntity = NSEntityDescription.entityForName(ChildInSessionEntity, inManagedObjectContext: context) 
    var parentEntity = NSEntityDescription.entityForName(ParentInSessionEntity, inManagedObjectContext: context) 
    var newChild = ChildInSession(entity: childEntity, insertIntoManagedObjectContext: context) 
    var newParent = ParentInSession(entity: parentEntity, insertIntoManagedObjectContext: context) 

일어나고

을 (이 아이 패드 에어 아이폰 OS 8.0에 충돌하지 않습니다)하지만, 2 라인은 수행하고, 네 번째 줄에 내 응용 프로그램이 충돌합니다.

다른 시뮬레이터 에서처럼 nil 값을 반환하지 않는 것은 매우 이상한 시나리오입니다.

어떤 도움이나 제안이 크게

+0

:

// Rather than... let entity = NSEntityDescription.entityForName("Entity", inManagedObjectContext: self.managedObjectContext!) // Use this instead... let entityName: NSString = "Entity" let entity = NSEntityDescription.entityForName(entityName, inManagedObjectContext: self.managedObjectContext!) 

당신은 당신이 바로 가기를 사용할 수있는 요청을 가져 사용하는 경우? 이것은 1) 이미 수정되었을 수 있거나 2) Apple에보고해야하는 버그 일 가능성이 큽니다 (베타 기간 동안 다른 iOS 7.1 문제가있었습니다). – snickle

+0

어제의 최신 버전 인 xCode-Beta4는 나에게도 버그처럼 보였지만 내 관심사는 내 childEntity가 무의미한 값으로 설정되지 않았다는 것입니다. – chaoscope

+0

ChildInSessionEntity와 ParentInSessionEntity는 무엇입니까? 그들은 문자열인가? –

답변

1

은 내가 당신과 같은 문제를 가지고 생각합니다. 나는 엔티티에 두 번째로 액세스 할 때 충돌이 일어나는 것을 발견했습니다. 이 기사 덕분에 문제를 해결할 수있었습니다. http://stackanswers.com/questions/24440927/swift-core-data-on-ios7-device-entityforname-on-second-entity-is-nil

어떤 이유로 든 엔티티 이름을 NSString의 인스턴스로 전달해야합니다. 당신이 사용하는 엑스 코드의 버전

let entityName: NSString = "Entity" 
let fetchRequest = NSFetchRequest(entityName) 
0

나는 그것이 버그 생각을 감사합니다, 나는 단지 아이폰 5S (아이폰 OS 7.1)과 같은 문제가 있습니다. 실수로 .xcdatamodeld를 선택하고 "Target Membership"아래의 "File Inspector"아래에서 프로젝트의 체크를 제거했습니다.

enter image description here

+0

가능한 해결책으로 사용할 수도 있습니다. (Uncheck-ed 빌드, 실행, 크래시)를 확인한 후 Apple과 함께 버그를 기록하는 방법을 잘 모르겠습니다. – chaoscope

+0

여기에서 Apple에 버그를 신고 할 수 있습니다 (https://developer.apple.com/). 그/나 버그// – iFadi

+0

뜻밖의 시간에 해결 방법을 발견/수정, NSString 형식의 내 상수 엔티티 이름을 명시 적으로 만든 및 컴파일 및 실행, 나는 stackoverflow 새로운 오전 대답으로 추가해야합니까? 나에게 벌레처럼 느껴진다. – chaoscope