AVQuery *query = [AVQuery queryWithClassName:@"Company"];
    [query whereKey:@"objectId" equalTo: _companyObject.objectId];
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        NSArray<AVObject *> *nearbyTodos = objects;
        if (nearbyTodos.count != 0) {
            AVFile *file = [[nearbyTodos objectAtIndex:0] objectForKey:@"logoUrl"];
            if (file == nil) {
                @autoreleasepool {
                    [vHeader.imgComanyLogo setImage:[UIImage imageNamed:@"Image-company-floor"]];
                }
            }else{
                [file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
                    [vHeader.imgComanyLogo setImage:[UIImage imageWithData:data]];
                    urlData = data;
                }];
            }
            
        }
    }];

每次取不到到图片时,返回的错误显示如下图,对应文档错误编码149,但是文件没有错误:

请打开日志,把 getData 时产生的日志粘贴出来看下。
打开日志的方法:

[AVOSCloud setAllLogsEnabled:YES];

请求公司信息的日志根本没有打印出来,我更改公司头像,上传公司头像成功后,日志打印出来如下:

2017-04-13 10:26:43
PUT 124.93.33.205 /1.1/classes/Company/58c9f4b3ac502e0058853590
UserAgent:AVOS Cloud iOS-v3.10.0 SDK
请求参数:{"logoUrl":{"_type":"Pointer","className":"File","objectId":"58eee1dd44d904006cdd4bfb"}}

2017-04-13 10:26:43
POST 124.93.33.205 /1.1/classes/Company_History
UserAgent:AVOS Cloud iOS-v3.10.0 SDK
请求参数:{"comId":{"type":"Pointer","className":"Company","objectId":"58c9f4b3ac502e0058853590"},"updateInfo":"","updateType":"1","updateUser":{"type":"Pointer","className":"User_Data","objectId":"58dc668e8d6d81006136e37a"}}
响应 ObjectId:58eee1e35c497d006c70e5d2

2017-04-13 10:26:37
POST 124.93.33.205 /1.1/fileTokens
UserAgent:AVOS Cloud iOS-v3.10.0 SDK
请求参数:{"_type":"File","key":"q8MZxhEL2JWpCM2LRWfNOLC.JPG","name":"IMG4171.JPG","mime_type":"image\/jpeg","metaData":{"size":41408,"author":"LeanCloud","checksum":"658f97fa807aac79a7c06363c76b143e","FILEWIDTH":1239,"FILE_HEIGHT":1239},"url":"http:\/\/ac-s7MgBXN0.clouddn.com\/q8MZxhEL2JWpCM2LRWfNOLC.JPG","bucket":"s7MgBXN0"}
响应 ObjectId:58eee1dd44d904006cdd4bfb

没有下载文件的日志,那下载文件的具体的报错有吗?

抱歉回复晚了,我试图重现了一下,没办法重现,能复制粘贴一段可以重现的代码片段吗?

重现的代码如下图:

AVQuery *query = [AVQuery queryWithClassName:@"Company"];
    [query whereKey:@"objectId" equalTo: _companyObject.objectId];
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        NSArray<AVObject *> *nearbyTodos = objects;
        if (nearbyTodos.count != 0) {
            AVFile *file = [[nearbyTodos objectAtIndex:0] objectForKey:@"logoUrl"];
            if (file == nil) {
                @autoreleasepool {
                    [vHeader.imgComanyLogo setImage:[UIImage imageNamed:@"Image-company-floor"]];
                }
            }else{
                [file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
                    [vHeader.imgComanyLogo setImage:[UIImage imageWithData:data]];
                    urlData = data;
                }];
            }
            
        }
    }];

Company里面的数据结构是这样的:

logoUrl是File类型的:

试了了一下,还是没重现。

重现步骤如下:
1、使用相应的 App ID 和 Key
2、把下面代码复制粘贴到 xCode 中运行

全部都走到了 Data 的回调中,没有任何报错。

AVQuery *query = [AVQuery queryWithClassName:@"Company"];
    [query whereKey:@"objectId" equalTo: @"xxx"];
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        NSArray<AVObject *> *nearbyTodos = objects;
        if (nearbyTodos.count != 0) {
            AVFile *file = [[nearbyTodos objectAtIndex:0] objectForKey:@"logoUrl"];
            
            [file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
                if (error) {
                    NSLog(@"error is %@", error);
                } else {
                    NSLog(@"Data is %@", data);
                }
            }];
            
        }
    }];

先这样吧,谢谢啦 kissing_heart

试试在AVQuery查询的时候加[query includeKey:@"logoUrl"]; full_moon_with_face

好的,我试试.谢谢 kissing_heart