2012-04-04 35 views
1

我有一个存储在MySQL数据库中的BLOB图像,我希望在我的iOS应用程序中使用它。我创建了一个PHP文件来从数据库中检索BLOB,但我不确定我需要做什么才能将BLOB存入我的应用程序。从iOS上的网页请求BLOB

请你给我一个例子,或者指出我这样做的方向吗?

感谢先进!

+1

我不认为你的问题是清楚的。你问如何在Objective-C中检索图像? Xcode是IDE,Objective-C是语言。您是否尝试在Mac或iOS应用中使用此图片? – davidethell 2012-04-04 10:16:35

+0

对不起,也许我没有解释清楚,我正在开发iPhone应用程序。是的,我想检索Objective C – user1312508 2012-04-04 10:57:33

+0

中的图像@davidethell我已经编辑了用户的问题和标题,希望它现在应该更容易理解。 – 2012-04-04 11:31:44

回答

1

使用ASIIHTTPRequest来从该PHP页面请求BLOB数据。

使用BLOB数据,将其转换为UIImage。

- (void) getBlobData:(NSURL *) url { 
    NSURL *url = [NSURL URLWithString:url]; 
    __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    [request setCompletionBlock:^{ 
     NSData *blobData = [request responseData]; 
     UIImage *blobImage = [UIImage imageWithData:blobData] retain]; 
     [someImageView performSelectorOnMainThread:@selector(setImage:) 
     withObject:blobImage 
     waitUntilDone:YES]; 
    }]; 

    [request setFailedBlock:^{ 
     NSError *error = [request error]; 
    }]; 
    [request startAsynchronous]; 
} 

或者,你可以使用大中央调度(GCD)的请求发送到网页,以便接收斑:

- (void) getBlobData:(NSURL *) url { 

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul); 
    dispatch_async(queue, ^{ 
     NSData *blobData = [NSData dataWithContentsOfURL:url];  
     UIImage *blobImage = [UIImage imageWithData:blobData]; 
     dispatch_sync(dispatch_get_main_queue(), ^{ 
      [someImageView setImage:blobImage]; 
     }); 
    }); 
}