2011-09-07 143 views
1

我試圖從REST服務下載Objective-C中的文件,但遇到一些問題。目前,該服務在JSON中返回一個字節[]。我能夠通過使用json框架來獲取數組。將NSArray的字節轉換爲NSData

NSURL *url = [NSURL URLWithString:@"http://192.168.10.215:8888/Service/RO/GetAllTheBytes/test.txt"]; 
NSString *str = [[NSString alloc] initWithContentsOfURL:url]; 
NSDictionary *jsonDic = [str JSONValue]; 
NSArray *fileContents = [jsonDic objectForKey:@"fileContents"]; 

現在我想用這個字節數組創建一個文件,但是我在創建文件時遇到了麻煩。我應該將NSArray轉換爲NSData,以及如何?

+0

爲什麼在'NSArray'中保存fileContents?我想'NSString'將會是更好的選擇。和'NSString'可以轉換爲byte []當你需要這個 – Nekto

+0

可能的重複http://stackoverflow.com/questions/1286212/how-to-convert-nsarray-to-nsdata – 0x8badf00d

+3

JSON沒有字節類型。你是否回來了可能是一串數字,一串十六進制數字,一個base64編碼的字符串,還是其他的東西? – Tommy

回答

1

更改您的服務以返回Base64字符串。在那裏有很多Objective-C Base64解碼器,其中一些是體面的。 NSNumbers的

一個NSArray的是真的真的真的愚蠢的,具有約300%的最小空間開銷(雖然不是那麼糟糕JRA-11693)。