Ich möchte eine Datei mithilfe des Freigabeblatts freigeben und habe Code geschrieben, der anscheinend einwandfrei funktioniert. Ich sehe diese Fehlermeldungen jedoch immer wieder im Protokoll (mit Xcode 11.3).
[ShareSheet] connection invalidated
Ich habe zwei physische Geräte, auf denen ich teste. ein iPad mit iOS 13.1.2 und ein iPhone 6 mit 11.4. Ich sehe diese Nachrichten auf dem iPhone mit dem älteren iOS nicht. In beiden Fällen scheint das Teilen gut zu funktionieren. Hier ist der Code, den ich verwende, indem ich Text anstelle einer Datei verwende:
let activityViewController = UIActivityViewController(activityItems: ["simple text for test"], applicationActivities: nil)
activityViewController.excludedActivityTypes = [.message, .airDrop]
activityViewController.popoverPresentationController?.barButtonItem = myBarButtonItem
self.present(activityViewController, animated: true, completion: nil)
Die Meldung wird angezeigt, wenn das Freigabeblatt ausgeblendet wird (entweder weil der Benutzer eine Aktion abschließt oder wenn er zum Abbrechen außerhalb tippt).
Ist es sicher, diese Nachrichten zu ignorieren? Es ist nur seltsam, dass sie im älteren Betriebssystem nicht aufgetaucht sind, sondern im neuen.
Bearbeitet am 20. März 2020: Ich habe bestätigt, dass ich eine gültige Quelle oder ein gültiges barButtonItem angegeben habe. Ich habe den Code so geändert, dass er dem entspricht, in dem ich ein UIBarButtonItem verwende, und ich sehe immer noch den ungültigen Fehler der ShareSheet-Verbindung.
Antworten:
ich habe
im Xcode-Ausgabeprotokoll unter iOS 13.x, und das Freigabeblatt wurde gequetscht und enthielt keine Schaltflächen.
Um dies zu beheben, weisen Sie Ihre Funktion
sourceView
etwas Spezifischerem zu alsself.view
In meinem Fall hatte ich einige
UILabels
in der Nähe meiner Sicht, also stellte ich meinesourceView
auf eine davon ein. Zum Beispiel hatte ich in meinem übergeordneten Ansichts-Controller einenUILabel
Namen,labelCustomerName
also habe ich diesen verwendet:quelle
Für mich wurde es gelöst, als ich diesen Code basierend auf der Apple-Entwicklerdokumentation hinzufügte .
Übrigens scheint es, als würde diese Meldung auch dann angezeigt, wenn Sie die Schaltfläche zum Schließen für die Aktivität drücken.
quelle