我在Objective-C中编写应用程序,我收到此错误:
MyApp(2121,0xb0185000)malloc:***对象0x1068310的错误:double free
***在malloc_error_break中设置断点以进行调试
当我发布一个NSAutoreleasePool并且我无法弄清楚我要发布两次的对象时,就会发生这种情况.
我该如何设置他的断点?
有没有办法知道这个"对象0x1068310"是什么?
我正在使用以下教程将Core Data实现到我的Swift IOS应用程序中。如视频所示,我的持久性管理器是通过单例模式创建的。这是描述它的代码:
import Foundation
import CoreData
class DataLogger {
private init() {}
static let shared = DataLogger()
lazy var context = persistentContainer.viewContext
private var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "mycoolcontainer")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
print("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
func save () {
if self.context.hasChanges {
self.context.perform {
do {
try self.context.save()
} catch {
print("Failure to save context: \(error)")
} …Run Code Online (Sandbox Code Playgroud) 该项目进入后台,切换wifi网络,然后进入该项目以发出网络请求。请求过程将报告错误。错误消息如下:
xxx(739,0x16ca7f000)malloc:检测到堆损坏,空闲列表在0x280c78fa0处损坏
***防护值不正确:206401777864449
xxx(739,0x16ca7f000)malloc:***在malloc_error_break中设置一个断点进行调试。