私のアプリケーションはクラッシュスティックスに接続されており、ユーザーの約9%(1kに近い)がクラッシュしているため、複製できません。クラッシュしている特定の行では、マネージオブジェクトコンテキストをデータ検索に使用する関数に渡しています。可能なCoreDataが再現できないユーザーからクラッシュする
依存性注入を使用して、私のAppDelegateで作成された管理オブジェクトコンテキストでメインビューコントローラをインスタンス化できました。管理オブジェクトコンテキストを必要とするクラスは、このメインビューコントローラから注入されます。以下は、Crashlyticsダッシュボードで取得したスタックトレースです。どのような助けが私が何ができるかを理解するのに役立ちます。
Crashed: com.apple.main-thread 0 MyApp 0x10008f47c specialized CalendarService.parseCalendarForMeetings(from : [EKEvent]?) -> [Meeting]? (CalendarService.swift:96) 1 MyApp 0x10006dbf4 specialized MeetingViewController.(launchCalendarService() ->()).(closure #1) (MeetingViewController.swift:188) 2 MyApp 0x100071e64 partial apply for MeetingViewController.(launchCalendarService() ->()).(closure #1) (MeetingViewController.swift) 3 MyApp 0x1000a5950 thunk (MeetingListMenuViewController.swift) 4 libdispatch.dylib 0x1806fabb8 _dispatch_block_async_invoke_and_release + 100 5 libdispatch.dylib 0x1806ee9a0 _dispatch_client_callout + 16 6 libdispatch.dylib 0x1806f35e8 _dispatch_main_queue_callback_4CF + 996 7 CoreFoundation 0x1817e50c8 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 8 CoreFoundation 0x1817e2ce4 __CFRunLoopRun + 1572 9 CoreFoundation 0x181712da4 CFRunLoopRunSpecific + 424 10 GraphicsServices 0x18317d074 GSEventRunModal + 100 11 UIKit 0x1879cdc9c UIApplicationMain + 208 12 MyApp 0x10005b3cc main (AppDelegate.swift:27) 13 libdyld.dylib 0x18072159c start + 4
EDIT:
これは問題であると思われるコード(スタック・トレース当たり96ライン)のラインです。 MOCは、CalendarServiceクラスまたはCalendarUtilityクラスではオプションではありません。
CalendarUtilityの内部では、MOCはデータの読み取り専用です。
let calendarUtil = CalendarUtility(title: event.title, location: event.location, notes: event.notes, managedObjectContext: managedObjectContext)
スタックトレースの先頭が参照するコードを追加し、CalendarService.swift内の96行を教えてください –
ファイルと行番号を知っているので、次はそのコードを見て、間違っているか、それにつながるコードに行きます。わからない場合は、その情報で質問を更新してください。誰でも本当にこれに基づいて言うことができるのは、MeetingViewController.swift:188から呼び出されたCalendarService.swift:96でアプリがクラッシュしたことです。 –
クラッシュを引き起こすコード行で更新しました – iOShepherd