2014-02-06 108 views
0

我正在創建一個應用程序,用戶需要輸入他們的姓名,並且會返回關於他們的信息。它工作到目前爲止,所有的信息都得到了返回。現在,我想補充一點,在我的服務器上載的照片,那是所有上傳的一樣以同樣的方式:從php代碼獲取圖像到iOS應用程序

mywebsite.com/images/users/charles.jpg

根據不同的名字,所以每個用戶都有自己的名字。因此,對於約翰這將是:

mywebsite.com/images/users/john.jpg

我想要得到這樣的:mywebsite.com/images/users/{$name}.jpg,因爲所有他們進入如$名返回的名稱。這會在php文件是這樣的:

$image = 'http://mywebsite.com/images/users/{$name}.jpg' 

然後我想,在圖像領域的160×160大小。我不是那種先進的xcodeobj-c,我只是在試驗。

這是我希望它看起來:

Example Design

會的框架就足夠了?

回答

0

你可以用這樣的代碼來獲取圖像:

NSURL *url = [NSURL URLWithString: @"http://mywebsite.com/images/users/Charles.jpg"]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 
yourImage = [UIImage imageWithData:data]; 

您可以快速地使用它來測試其工作正常。但是NSData:dataWithContentsOfURL是同步的,所以你必須通過在主線程調用dispatch_asyn調用代碼來使代碼異步。

您可以首先將其作爲概念驗證同步工作,然後對同步/異步問題和dispatch_aync等的使用進行額外研究,並在必要時提出後續問題。

或者,您也可以使用NSURLConnection或NSURLSession(不需要使用dispatch_asyn)下載圖像,但使用它更加涉及,但如果您需要處理更復雜的網絡情況(如錯誤情況,重定向,身份驗證挑戰等。

+0

嗯,我怎麼能得到它抓住從PHP文件的形象呢?與$ image ='http://mywebsite.com/images/users/{$name}。jpg' – user2897900

+0

這是一個完全不同的問題,與iOS無關。你應該把問題分成兩部分,你不應該在一個問題中混合完全不同的問題。 – Gruntcakes

+0

嗯,這是在我的問題和它的主要問題..我想要獲取這些圖像由每個人(約50人..)動態在用戶界面 – user2897900

-1

這只是一種異步執行此操作的方法。你應該做一些對你有意義的事情。

dispatch_async(dispatch_get_main_queue(), ^(void){ 

    NSString *urlString = [NSString stringWithFormat:@"http://mywebsite.com/images/users/%@.jpg", name]; 

    NSURL *url = [NSURL URLWithString:urlString]; 

    NSData *data = [NSData dataWithContentsOfURL:url]; 

    UIImage *image = [UIImage imageWithData:data]; 

}; 

很明顯,你將不得不在那裏得到那個「名稱」參數。

0

功能

- (void)downloadPicture :(NSString *) url{ 

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
     UIImage *image = [self getPicture:[NSURL URLWithString:url]]; 

     dispatch_async(dispatch_get_main_queue(), ^{ 
      if (image!=nil) 
       ImageView.contentMode = UIViewContentModeScaleAspectFit; 
       [ImageView setImage:image]; 
       [ImageCell.contentView addSubview:ImageView]; 
      } 

     }); 
    }); 
} 


- (UIImage *)getPicture:(NSURL *)pictureURL {  
    NSData *data = [NSData dataWithContentsOfURL:pictureURL]; 
    image = [UIImage imageWithData:data]; 

    return image; 
} 

執行

[self downloadPicture :@"mywebsite.com/images/users/charles.jpg"]; 
相關問題