iPhone - Anwendung stürzt bei Klick auf Menü-Taste Aktion in QLPreviewController ios 4.2
When I try to click the menu action button in QLPreviewController the application crashes.
Dies ist, was ich Tue, in der delegate-Methode
- (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)index
{
NSMutableString*Url = [[NSMutableString alloc] initWithFormat:@"http://10.30.24.21/Documents/abc.doc];
NSURL *fileURL;
fileURL = [NSURL URLWithString:Url];//the url of the file which is present in NAS device
[Url release];
return fileURL;
}
Dies ist die crash-Bericht
2011-01-11 12:21:36.717 iLink[5548:207] *** Assertion failure in -[UIDocumentInteractionController setURL:], /SourceCache/UIKit_Sim/UIKit-1447.6.4/UIDocumentInteractionController.m:1060
2011-01-11 12:21:36.720 iLink[5548:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UIDocumentInteractionController: invalid scheme https. Only the file scheme is supported.'
Wenn ich versuche, um eine Vorschau-Datei lokal Menü Aktion-button klicken, nicht zum Absturz zu bringen.
dort werde ich mit
NSURL *fileURL;
fileURL = [NSURL fileURLWithPath:filePath];//filePath is local file path.
Habe ich verstanden, dass, wenn wir eine Vorschau von lokalen Dateien ([NSURL fileURLWithPath:filePath]) im Menü action-button klicken, nicht abzustürzen, wenn wir eine Vorschau von Dateien vom server ([NSURL URLWithString:Url]) im Menü Aktion klicken Sie auf die Schaltfläche abstürzt.
Habe ich zwei Fragen,
1. Können wir deaktivieren Sie die Menü-Taste Aktion?
2. Gibt es eine Möglichkeit, um den Absturz zu vermeiden, die mit [NSURL URLWithString:Url]?
Dank
InformationsquelleAutor Kapil Gouthaman | 2011-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden müssen
InformationsquelleAutor Alex
Während die vorherigen Antworten gegeben haben, die richtige technische Antwort, ich wollte mehr erarbeiten.
Den API docs für QLPreviewItem sagen, dass die URL muss eine Datei-geben Sie die URL, die die NSURL docs sagen, bedeutet "verwendet die
file:
Schema".Können Sie auch Lesen, ein bisschen mehr aus der Dokument Interaktion Progamming guide, die erwähnt, dass die QuickLook soll, um Ihnen mehr Kontrolle als ein UIDocumentInteractionController, indem Sie entscheiden, die Art der Präsentation, aber es bringt den gleichen Annahmen, dass Sie bereits eine Datei lokal und Sie wollen einfach nur ein Weg, um es anzuzeigen und (mit QuickLook) drucken Sie mit AirPrint.
In Ihrem Fall, kann es am meisten Sinn machen, um die Datei herunterzuladen, auf der die app
Caches
- Verzeichnis, und öffnen Sie dann die QL-Album-es ist bereits heruntergeladen, die von der Vorschau-Ansicht sowieso, so dass Sie könnte genauso gut nehmen Sie es so, dass es gedruckt werden kann auch.Nehmen Sie nun Ihre ursprüngliche URL und laden Sie den Inhalt und speichern Sie Sie auf
cacheURL
. Wenn SieASIHTTPRequest
sieht es so aus:Und verwenden Sie dann den Datei-URL in den QuickLook-Ansicht...
In diesem Szenario, jede neue PDF-Datei, die Sie anschauen, von Ihrer NAS überschreibt das vorhergehende (gleicher name, gleiche Verzeichnis), so begrenzen Sie Ihre Festplattennutzung. Natürlich gibt es viele Möglichkeiten, zu behandeln, das problem, so wählen Sie eine, die für Sie geeignet. Der Schlüssel, obwohl, ist die Datei lokal herunterzuladen und halten Sie es mindestens bis zu den QL-Ansicht wurde abgewiesen.
InformationsquelleAutor Tim Shadel
Laden Sie die Datei auf Ihrem lokalen Dateisystem ersten.
Sie können keine Vorschau einer Datei, ohne das abrufen vom server. Zumindest dann nicht, wenn Sie verwenden möchten UIDocumentInteractionController. Der Controller muss die Datei auf dem lokalen Datei-system, um zu funktionieren.
Die Vorschau ist nicht ein problem für mich, auch wenn ich mit [NSURL URLWithString:Url] kann ich die Dateien anzuzeigen. Es ist nur die app stürzt ab, wenn ich auf die Menü-Taste Aktion.. U Kann mir keine Lösung so, dass die app nicht abstürzt. Kann ich jedenfalls Griff, das Menü Aktion-button klicken?
Die einzige Lösung ist jetzt, ich Downgrade mein ios 4.1, wo im Menü Aktion-button nicht angezeigt wird.
InformationsquelleAutor Matthias Bauch
Durch die Art und Weise Ihrer Abrechnung
NSMutableString*Url = [[NSMutableString alloc] initWithFormat:@"http://10.30.24.21/Documents/abc.doc];
hat einen typo-Fehler. Sie verpasste ein " an das Ende der url-ZeichenfolgeInformationsquelleAutor visakh7
War ich in der Lage zu zeigen PDF-Dateien mit HTTP-Schema. Die App stürzt ab, wenn ein Benutzer drückt die Taste "drucken". Also brauchte ich einen Weg, nur um zu zeigen, das PDF über HTTP und als Strafe mussten deaktivieren Sie die Schaltfläche "drucken". Tasten deaktivieren, die in einer Unterklasse in viewDidAppear Hier ist mein code
und als code:
InformationsquelleAutor Aschwin