问题 来自Parse的图像未在iOS 9上加载


我有一个 PFQueryCollectionViewController 由图像填充,在iOS 8.x.x及更低版本上一切正常,但是当我使用Xcode 7 Beta在iOS 9上运行应用程序时,所有图像都是空白的。

这是我用来从Parse中加载图像的代码 PFQueryCollectionViewController

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {

    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];

    UIImageView *imageView = (UIImageView*)[cell viewWithTag:1];

    if([object objectForKey:@"image"] != NULL) {

        [[object objectForKey:@"image"] getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {                

            UIImage *thumbnailImage = [UIImage imageWithData:imageData];
            UIImageView *thumbnailImageView = [[UIImageView alloc] initWithImage:thumbnailImage];

            imageView.image = thumbnailImageView.image;

        }];

        }

     return cell;

}

- (PFQuery *)queryForCollection {

    PFQuery *query = [PFQuery queryWithClassName:@"Class"];   

    ...

    return query;
}

6750
2018-06-26 17:20


起源

你为什么要通过thumbnailImageView将thumbnailImage带到imageView? - Simon Degn
我刚刚遇到了同样的问题(使用PFFile),看起来Parse正在跟踪GitHub上的更新: github.com/ParsePlatform/Parse-SDK-iOS-OSX/issues/12 - Derek Lee


答案:


这可能是由于iOS 9的SSL要求。由于Parse不对文件使用HTTPS,因此无法正确下载。设置info.plist以包含这样的密钥,这会关闭SSL要求......当然:风险自负:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSExceptionDomains</key>
        <dict>
            <key>files.parsetfss.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSTemporaryExceptionMinimumTLSVersion</key>
                <string>TLSv1.1</string>
            </dict>
        </dict>
    </dict>

10
2017-07-21 20:59



这为我解决了这个问题 - 为什么不解析这个文件呢?我知道有一篇关于转换到SHA-2证书的文章,但这似乎是一个巨大的疏忽...... - DiscDev
这很有效,谢谢akaru! - adrian1kat


启用bitcode 在相应目标中的构建设置中并将其设置为 没有


2
2017-07-10 21:45





@ akaru的答案很有效。您可以使用而不是添加例外 这个 加载解析图像的技巧 https。基本上它意味着更换 http:// 同 https://s3.amazonaws.com/。像这个例子:

HTTP: http://files.parsetfss.com/b05.../tfss-fa8-e541-...-jpg

HTTPS: https://s3.amazonaws.com/files.parsetfss.com/b05.../tfss-fa8-e541-...-jpg


0
2017-09-24 21:55



我们在哪里做出改变? - natecraft1
根据SO指南,您应该从链接中提取相关部分以避免这一点,ERR_TOO_MANY_REDIRECTS - Jaime Agudo
我的坏,现在解决了。 - Simon Bengtsson