범용 iOS 응용 프로그램에 메모리 문제가 있습니다. CoreData가 너무 많은 메모리 (> 30Mo)를 사용하고있었습니다. 그래서 나는 사용 된 메모리의 양을 줄이기 위해 할 수있는 모든 일을했다. CoreData 메모리 사용 : iOS 5와 iOS 4.3의 차이점은 무엇입니까?
- 높은 수준의 범주 (제한 이진 데이터 < 10K와 법인) :
기본적으로 내 CoreData 모델은 기본 카탈로그 모델입니다
:
- 각 하위 카테고리 (다시, 한정된 이진 데이터 < 10K) ~ (10 개)의 제품
- 각 제품 보유 ~ 10 개 상세한 이미지 (~ 40-70K 데이터의 높은 양)이
(사진 포함) 각 항목의 세부 항목이 해제 된 후, I는 않는
[NSManagedObjectContext refreshObject : 아이템 mergeChanges : NO] 없다
호출이
것들 아이폰 OS와 5+하지만 아이폰 OS 4.3 꽤 잘 작동 (사진을 건너 뛸 순서대로) 메모리 그래프를 줄이기 위해, 나는 많은 오류를 얻을.
때로는 오류 : 응용 프로그램을 종료
때문에, 이유 캐치되지 않는 예외 'NSObjectInaccessibleException'에 ' ID가 NSManagedObject :. 이 이 0xbb70480을 무효화되었습니다'
다른 경우에는 앱이 "처리기가 예외를 throw했습니다"라는 오류가 발생하고 잘못된 내용에 대한 세부 정보가 사라집니다.
내 질문은 다음과 같습니다 동작에서 iOS 5 및 iOS 4.3 다른 이유
- 어떤 생각?
- CoreData에서 사용하는 메모리를 줄일 수있는 방법에 대한 권장 사항은 무엇입니까? (가져 오기 컨트롤러를 해제하고 더 이상 사용되지 않는 컨텍스트를 해제하는 것 제외)
감사합니다. @XJones. "이미지 데이터를 제외한 모든 속성을 가져 오기 위해 필요한 모든 가져 오기 요청을 구성하여 필요에 따라 이미지에 오류가 발생하도록합니다. 필요없는 경우 이미지 데이터가 오류로 되돌아 가도록해야합니다." 어떻게 할 수 있니? –
문제 없습니다. NSFetchRequest'의'propertiesToFetch' 속성을 확인하십시오. – XJones
고마워, 내가해볼 게. 나는이 특징을 몰랐다. –