大佬教程收集整理的这篇文章主要介绍了ios – EXC_BAD_ACCESS代码= EXC_ARM_DA_ALIGN,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我只在所有iPhone 5设备上收到上述错误.不知道这里发生了什么,但也许这个5位是32位设备的事实可能是一个线索?
func startRecording() { disableControls() CoreDataStack.shared.performForegroundTask { (context) in let sessionInfo = SessionInfo(context: context) sessionInfo.startTime = Date().timeIntervalSince1970 sessionInfo.userId = self.config.userId sessionInfo.devicePosition = self.config.devicePosition.rawValue sessionInfo.deviCEType = self.config.deviCEType.rawValue sessionInfo.devicenumber = self.config.devicenumber sessionInfo.deviceSide = self.config.deviceSide.rawValue do { try context.obtainPeRMANentIDs(for: [sessionInfo]) } catch { print("Error obtaining peRMANent ID for session info record") return } CoreDataStack.shared.saveViewContextAndWait() DispatchQueue.main.async { guard sessionInfo.objectID.istemporaryID == false else { print("ObjectID is temporary") return } self.recording = true self.statusLabel.text = "Recording..." self.recordManager.start(sessionUID: sessionInfo.uid) } } }
struct Configuration { var userId: String = "UnkNown" var deviCEType: DeviCEType = .phone // enum: String var deviceSide: DeviceSide = .notApplicable // enum: String var devicenumber: Int16 = 1 var devicePosition: DevicePosition = .waist // enum: String }
CoreDataStack在这里:
final class CoreDataStack { static let shared = CoreDataStack() private init() {} var errorHandler: (Error) -> Void = { error in log.error("\(error),\(error._userInfo)") } private struct constants { static let persistentStorename = "Model" } private lazy var persistentContainer: NSPersistentContainer = { let container = NSPersistentContainer(name: constants.persistentStoreName) container.loadPersistentStores(completionHandler: { [weak self] (storeDescription,error) in if let error = error { self?.errorHandler(error) } }) return container }() lazy var viewContext: NsmanagedObjectContext = { self.persistentContainer.viewContext.mergePolicy = NSMergePolicy.mergeByPropertyObjectTrump self.persistentContainer.viewContext.automaticallymergesChangesFromParent = true try! self.persistentContainer.viewContext.setQueryGenerationFrom(.current) return self.persistentContainer.viewContext }() private lazy var BACkgroundContext: NsmanagedObjectContext = { let context = self.persistentContainer.newBACkgroundContext() context.mergePolicy = NSMergePolicy.mergeByPropertyStoreTrump return context }() func performForegroundTask(_ block: @escaping (NsmanagedObjectContext) -> Void) { self.viewContext.perfoRMANdWait { block(self.viewContext) } } func performBACkgroundTask(_ block: @escaping (NsmanagedObjectContext) -> Void) { BACkgroundContext.perform { block(self.BACkgroundContext) } } func saveBACkgroundContext() { viewContext.perfoRMANdWait { do { if self.viewContext.hasChanges { try self.viewContext.save() } } catch { self.errorHandler(error) } self.BACkgroundContext.perform { do { if self.BACkgroundContext.hasChanges { try self.BACkgroundContext.save() self.BACkgroundContext.refreshAllObjects() } } catch { self.errorHandler(error) } } } } func saveViewContext() { viewContext.perform { if self.viewContext.hasChanges { do { try self.viewContext.save() } catch { self.errorHandler(error) } } } } func saveViewContextAndWait() { viewContext.perfoRMANdWait { if self.viewContext.hasChanges { do { try self.viewContext.save() } catch { self.errorHandler(error) } } } } }
try context.obtainPeRMANentIDs(for: [sessionInfo])
编辑:
我创建了一个精简测试应用程序,它只包含CoreDataStack和一个带有一个属性类型为String的实体的模型.我仍然只在3x iPhone 5上出现同样的错误. 5s,6s,7都可以正常工作.
这可能意味着问题在于CoreDataStack吗?
Github回购here
以上是大佬教程为你收集整理的ios – EXC_BAD_ACCESS代码= EXC_ARM_DA_ALIGN全部内容,希望文章能够帮你解决ios – EXC_BAD_ACCESS代码= EXC_ARM_DA_ALIGN所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。