UI をブロックしたくありません。ダウンロードには時間がかかる場合があります。したがって、バックグラウンドで実行します。最も簡単なのは NSURLConnection の便利なメソッドを使用するsendAsynchronousRequest:requestことです 名前が示すように、非同期であり、ダウンロードが完了すると、渡された完了ブロックを呼び出します
NSURL *url = [NSURL URLWithString:@"http://lab.vpgroup.com.br/aplicativos/teste-catalogo/lista.plist"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
    NSDictionary *dict = [NSPropertyListSerialization propertyListFromData:data mutabilityOption:0 format:0 errorDescription:nil];
    NSLog(@"%@", dict);
}]; 
サンプル:
#import <Foundation/Foundation.h>
int main(int argc, char *argv[]) {
    @autoreleasepool {
            NSURL *url = [NSURL URLWithString:@"http://lab.vpgroup.com.br/aplicativos/teste-catalogo/lista.plist"];
            NSURLRequest *request = [NSURLRequest requestWithURL:url];
            [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
               NSDictionary *dict = [NSPropertyListSerialization propertyListFromData:data mutabilityOption:0 format:0 errorDescription:nil];
               NSLog(@"%@", dict);
            }]; 
            //just for demo
            [[NSRunLoop currentRunLoop] run];
    }
}