2010-04-23 3 views
3
NSURL * url = @"http://192.168.100.161/UploadWhiteB/wh.txt"; 
NSData * data = [NSData dataWithContentsOfURL:url]; 

if (data != nil) { 
    NSLog(@"\nis not nil"); 
    NSString *readdata = [[NSString alloc] initWithContentsOfURL:(NSData *)data ]; 

Я пишу этот код, чтобы загрузить файл с данного URL ... но я получаю сообщение об ошибке на линии
NSData * data = [NSData dataWithContentsOfURL:url];Как скачать файл с определенного URL-адреса?

неперехваченное исключение ...

поэтому, пожалуйста, помогите мне.

+0

Я не знаю Objective-C, но почему бы не поймать исключение, поэтому вы можете распечатать его и узнать больше о том, что происходит не так? –

+0

Lol, uncaght expresion не **, что ** – Sirens

ответ

0

-[NSString initWithContentsOfURL:] устарел. Вы должны использовать -[NSString (id)initWithContentsOfURL:encoding:error:]. В любом случае параметр URL-адреса является экземпляром NSURL, а не экземпляром NSData. Конечно, вы получаете ошибку, пытающуюся инициализировать строку с неправильным типом. Вы можете инициализировать строку данными URL, используя -[NSString initWithData:encoding:], или просто инициализировать строку непосредственно из URL.

4

Ваша первая линия должна быть

NSURL * url = [NSURL URLWithString:@"http://192.168.100.161/UploadWhiteB/wh.txt"]; 

(NSURL не является строкой, но может быть легко изготовлен из одного.)

Я ожидаю, что вы получите предупреждение компилятора на вашей первой линии - Предупреждение о компиляторе плохо. Вторая строка терпит неудачу, потому что dataWithContentsOfURL: ожидает, что будет указатель на объект NSURL, и пока вы передаете ему указатель, который вы набрали NSURL*, url фактически указывает на объект NSString.

+0

Имеет ли источник объект NSData для этого метода? [В этом вопросе] (http://stackoverflow.com/questions/16150196/updating-sqlite-database-without-xml) Я пытаюсь загрузить базу данных .sqlite в объект NSData из URL-адреса, но это похоже, не сохраняет его правильно. Файл написан, но когда я пытаюсь получить к нему доступ (через мое приложение или с сторонним зрителю), он говорит мне, что это не действительная база данных SQLite. Работает ли 'dataWithContentsOfURL' только загрузка файлов .txt или что-то в этом роде? – GeneralMike

2
NSString *file = @"http://192.168.100.161/UploadWhiteB/wh.txt"; 
    NSURL *fileURL = [NSURL URLWithString:file]; 

    NSLog(@"qqqqq.....%@",fileURL); 

    NSData *fileData = [[NSData alloc] initWithContentsOfURL:fileURL];