シングルトンクラスを使用してCoreDataからデータを選択し、呼び出し元のViewControllerに送信します。私の問題は、ManagedObjectのプロパティの1つを取得するときに、EXC_BAD_ACCESS例外でアプリケーションがクラッシュすることです。EXC_BAD_ACCESS例外を受け取る
これは、iOS 9.xまたはシミュレータでのみ発生するようですが、これらはかなり一貫しています。 10.xを実行しているデバイスでは発生していません。私はゾンビのオブジェクトを表示する方式で診断を設定し、現在は次のエラーを提示しています:
-[CFString copy]: message sent to deallocated instance 0x15b92990
問題は、私はこのエラーを取得する前に、参照されている文字列を直接取得したオブジェクトの上にあるということである、と私は使用していますスウィフト(何も手動で割り当てを解除しないので)、私はなぜそれが割り当て解除されたのか分かりません。
オブジェクトを選択するコードは次のようになります。次のようにのViewControllerから呼び出され、そして使用される
func getModelTypePrice(mmCode: String, year: Int) -> ModelTypePrice? {
let request = NSFetchRequest<ModelTypePrice>(entityName: "ModelTypePrice")
request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [NSPredicate(format: "mmcode = %@", mmCode),
NSPredicate(format: "reg_year = %d", year)])
do {
let prices = try managedContext.fetch(request)
if prices.count == 1 {
return prices[0]
}
} catch {
print("Error selecting object: \(error)")
}
return nil
}
:
if let price = LibraryAPI.sharedInstance.getModelTypePrice(mmCode: "123", year: 2017) {
self.newPrice = price.new_price // Error happens here.
}
のViewControllerはnewPriceと呼ばれるオプションの文字列プロパティを持っています。 ModelTypePriceのnew_priceプロパティもオプションのStringです。 私はここで紛失しているので、アドバイスや提案をいただければ幸いです。
価格の価値は何ですか? –
getModelTypePriceで返す前に印刷すると、次のようになります: 'prices [0] .new_price:Optional(" 369737 ")' – James
これを試してください... self.newPrice = prices.new_price! – Bala