2012-04-04 67 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]; 
     }); 
    }); 
}