2012-02-10 10 views
2

ここで問題になります。私はjson画像データbase64を送信するレールアプリを持っています。 jsonが送信しますが、iosアプリケーションでデータ値にアクセスしようとするとnullに戻ります。ここに私のレールのコード、コードRESTkitを使って消費するためにbase64の画像データをiosアプリケーションに渡します

{ 
"profile_pic": "<%= Base64.encode64(File.read('/Users/rui_y/connect_Me2/public'+  
@user.avatar_photo_url(:thumb)).gsub("\n", '')) %>", 
} 

があるJSONは私がそうイムアクセス可能であるのNSLogときRestkitがこの

[userMapping mapKeyPath:@"profile_pic" toAttribute:@"profilePic"]; 
NSLog(@"people id %@",[[objects objectAtIndex:0]profilePic ]); 
//and it comes back as null 
2012-02-09 20:08:48.073 ConnecTest[78232:207] profile_pic (null) 

他のすべての値のようにマッピングされている

[{"profile_pic": "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcH...... 
    ....... many more lines etc etc................................................... 
+p/Ob9Xrf6D8po/hOhI4U5SSm4Es8vUE/riYmJj2B0iefbkz/2Q==" }] 

として戻ってきますこのデータをどのようにマップするのだろうか。

+0

なぜBase64でエンコードしますか? JSONレスポンスでイメージリンクを使用し、HTTP経由で直接そのリンクからイメージを取得することを検討しましたか? –

+0

まあ、私はそれが速く、効率が良いだろうと思ったが、私は、httpを介してリンクを取得するために頼らなければならないと思う。 –

答えて

0

これは、すべての文字列と同じようにマップできます。

私は私のコードでこれを取るが、私は、キー/値オブジェクトのリストをマップ:

マッピング:

listMapping = [RKObjectMapping mappingForClass:[VOKeyValue class]]; 
[listMapping mapKeyPath:@"value" toAttribute:@"value"]; 
[listMapping mapKeyPath:@"key" toAttribute:@"key"]; 
[[RKObjectManager sharedManager].mappingProvider setMapping:listMapping forKeyPath:@"list"]; 

値オブジェクト:

@interface VOKeyValue : NSObject 
{ 
    NSString * key; 
    NSString * value; 
} 

@property (nonatomic, retain) NSString * key; 
@property (nonatomic, retain) NSString * value; 

@end 

が要求:

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"yourResourceURL..." delegate:self]; 

私のCa llBack機能:

VOKeyValue*img=[objects objectAtIndex:0]; 
if (![img.key isEqualToString:@"image"]) { 
    img=[objects objectAtIndex:1]; 
} 

最後に、私は、このJSONをマッピングすることができます。

{"list":[{"key":"image","value":"/9j/4AATSkZJRgABAgIAAAAAAAAAAAD/wAARCADwAUADASEAAhEBAxEB/....YFJCPAP/ZAAA="},{"key":"other","value":"xxxx..."}]} 

私は私のexempleはあなたを助けることができると思います。

+0

thnx一束=] –

+0

あなたの問題は解決しましたか? – Beber

+0

あなたの提案を始めたばかりで、私はあなたと同じ方法でマッピングされているようですが、私は自分のprofilePicを自分のユーザークラスの型文字列として持ち、profile_picにマッピングしています。マップされていて、それらはすべて、仕事ではなく、ちょうどプロフィールの写真を処理します。\ ...オハイオ州の他の質問、 "1" "名": "dave1"、 "profile_pic": [ "/9j/4AATSkZJRgABAgIAA....YFJCPAP/ZAAA=を" 私は –