2011-02-08 2 views
2

Я хотел бы получить Mime Type URL синхронно. Я не хочу использовать NSURLConnection. Просто что-то вроде:Cocoa: Getting Mime Тип URL-адреса?

NSString * theMimeType = [самоуправления getMimeTypeFromURL: theURL];

Любые идеи?

+6

Синхронные сетевых операций злы. И со злом я имею в виду нечто вроде массового убийцы, который толкает маленьких детей с обрыва в океан, полный акул, в то время как изнасилование их матерей и сжигание зданий. – JustSid

+0

@JustSid, поэтому каждая нить, созданная NSURLConnection, является массовым убийцей, который толкает маленьких детей с обрыва в океан, полный акул, в то время как изнасилование их матерей и сжигание зданий? –

+0

@ Radek S: Uhm, NSURLConnection не порождает поток, он работает асинхронно в текущем цикле цикла и, таким образом, не только экономит накладные расходы на создание нити, но и спасает вас от злого убийцы;) – JustSid

ответ

8

Нет абсолютно никакой причины не для использования асинхронных запросов.

Использование делегата NSURLConnection.

NSString  *url = ...; 
NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; 
NSURLConnection *conn = [NSURLConnection connectionWithRequest:req delegate:self]; 
[conn start]; 

Где-то в вашем @implementation:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 

    NSString *mime = [response MIMEType]; 
    //do something with mime 
} 
+4

Синхронные запросы «проще», поскольку они изолируют логику обработки после запроса до той же области кода, где запрос был отправлен в первую очередь. К сожалению, я чувствую, что это одна из причин, по которой люди все еще используют синхронные запросы. : - \ – LucasTizma

+0

@LucasTizma Я согласен с тобой на 100%. –