我试图将图像文件中的每个字节数组存储在一个临时数组中,但由于某种原因它没有存储这些值。这是我的代码:
values=new ArrayList<>();
final ParseQuery<ParseObject> query = ParseQuery.getQuery("ImageUpload");
query.orderByDescending("createdAt");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> eventsList, com.parse.ParseException e) {
if (e == null) {
//looping through the parse table and storing vlaues.
for (int index = 0; index < eventsList.size(); index++) {
ParseFile file=(ParseFile)eventsList.get(index).get("ImageFile");
file.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] bytes, com.parse.ParseException e) {
if (e == null) {
//my problem
tmpBytes=bytes;
}
}
});
//ListRow is a class which im trying to save each byte array value to ,its constructor takes 2 strings and a byte array
values.add(new ListRow(eventsList.get(index).get("Title").toString(), eventsList.get(index).get("Description").toString(),tmpBytes));
}
答案 0 :(得分:0)
不要使用NSJSONSerialization.JSONObjectWithData(data, options: nil)
这只返回文件ID。请改用get("ImageFile")
。
在获取数据之前,带有getParseFile("ImageFile")
的代码会被执行,因为您是异步下载的。为了解决这个问题,请将此代码放入values.add
(忘记GetDataCallback
)。