2012-06-16 2 views
1

У меня есть приложение для всех Open-in с различными типами документов. Например, пользователь открывает PDF-файл в мое приложение, а затем вместо его отображения у меня есть выбор, какую папку они хотят разместить и загрузить на свой сервер. Я беру URL-адрес, преобразовывая его в NSData и загружая его на свой сервер (отлично работает).Отображение файлов из приложения

Затем, когда они захотят просмотреть файл позднее, я вытаскиваю NSData с моего сервера ... вот где я застреваю. Как я могу взять объект NSData и отображать содержимое для пользователя из моего приложения? Спасибо.

+0

какой контент вы хотите отображать? –

+0

хранить данные в каталоге documnet для получения более быстрого результата –

+0

Я не хочу хранить в каталоге документа по определенной причине для приложения. Скажем, что начальный файл был PDF-файлом, как я могу вернуть данные в PDF-файл? Я могу сделать это с изображением просто отлично, используя удобный метод '[UIImage alloc] initWithData:' –

ответ

0

Если сервер не требует какого-либо пользователя/пароль вызова вы можете просто сделать

NSURL*url=[NSURL URLWithString:@"your url goes here"]; 
NSData*data=[NSData dataWithContentsOfURL:url]; 

Вы также может иметь больше контроля над вашей загрузкой с помощью NSURLRequest и реализующего класс NSURLConnection с ней делегировать методы

Если вы реализуете NSURLRequest с NSURLConnection вы можете бросить вызов пользователя/пароль

Для большого содержания вы можете сделать метод класса

+ sendAsynchronousRequest:queue:completionHandler: 

Для создания PDF документов из NSData вы можете сделать:

CFDataRef myPDFData = (CFDataRef)data; 
CGDataProviderRef provider= CGDataProviderCreateWithCFData(myPDFData); 
CGPDFDocumentRef pdf= CGPDFDocumentCreateWithProvider(provider); 

Где данные ваши полученные данные

+0

Что делать, если данные больше по размеру, то это не повлияет на производительность приложения? –

+0

Я могу получить данные с сервера. Итак, теперь у меня есть «данные», так как ваш пример выше говорит ... Я застрял в том, как сделать «данные» полезными. –

0

Вы должны либо включить поддержку просмотра для каждого типа документа, который вы планируете поддерживать или передавать эту задачу другому приложению, которое может сделать это для вас с помощью UIDocumentInteractionController.

См. Document Interaction Programming Topics for iOS для получения дополнительной информации.

0

Используйте UIWebView для отображения NSData, содержащий Pdf

[self.webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"utf-8"  baseURL:nil]; 

Web Представления могут отображать различные данные.

Смежные вопросы