2014-02-06 57 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"]; 
相关问题