代码
因为是pointer类型 media.mp3只能拿到objectId其他拿不到 然后用getFileWithObjectId 方法 才能获得 完整的AVFile文件 这时才能去获得数据

但是离线情况下

    [AVFile getFileWithObjectId:mp3Id withBlock:^(AVFile *file, NSError *error) {

这个方法不支持离线啊 还是不能处理


最开始 在后端配置中,我的mpe属性 就是AVFile类型 而不是 Pointer类型 这个问题就解决了。。但是感觉很危险很不好。。 应该是File单独上传文件。。 model需要用到File文件了,就关联一下。。

而不是 只能上传一次,那样model有变动,改动很大啊啊。。

感觉是leancloud设计上没考虑到,希望能得到解答。

这个暴露的问题 感觉到 pointer关系很弱 还不支持离线 不能很好地发挥作用。。 一些数据model的关联 不能使用 pointer指针了。 需要自己通过string类型的 id 来关联 但是一有问题改动很大,因为不能自动变更。


[[AVObjectManager shareInstance] requestMediaWithId:_media_id completion:^(NSArray *objects) {
    _media = (TLAudioModel*)[objects firstObject];
    
    NSString *mp3Id = _media.mp3.objectId;
    
    [AVFile getFileWithObjectId:mp3Id withBlock:^(AVFile *file, NSError *error) {
        
        [file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
            _mp3Data = data;
            [self configPlay];
            
        } progressBlock:^(NSInteger percentDone) {
            NSLog(@"%ld",(long)percentDone);
            if (percentDone != 100) {
                [SVProgressHUD showProgress:percentDone/100.0 status:@"下载中"];
            }else {
                [SVProgressHUD dismiss];
            }
            
        }];

    }];

请为 AVQuery 加上 include 查询即可