小编mic*_*nin的帖子

Swift 3泛型:在UITableViewCell中为UICollectionView设置UICollectionViewDatasource和Delegate的问题

我在翻译我的应用程序斯威夫特3.我在一个问题,用设置数据源和委托一个UITableViewCell内UICollectionView,描述了一个干净的方式跌跌撞撞的过程在这里.

代码如下:

func setCollectionViewDataSourceDelegate<D: protocol<UICollectionViewDataSource, UICollectionViewDelegate>>
(_ dataSourceDelegate: D, forRow row: Int) {

collectionView.delegate = dataSourceDelegate
collectionView.dataSource = dataSourceDelegate
collectionView.tag = row
collectionView.reloadData()}
Run Code Online (Sandbox Code Playgroud)

它会发出警告,说:

'protocol <...>'组合语法已弃用; 使用'&'加入协议

当我接受建议的解决方案时,它会更改D: protocol<UICollectionViewDataSource, UICollectionViewDelegate>为一个D: (UICollectionViewDatasource & UICollectionViewDelegate)调用,而是抛出一个错误:

预期限制'D'的类型名称或协议组成

如果对Swift 3仿制药有更好理解的人可以提出解决方案,我将非常感激.

generics uitableview uicollectionview swift swift3

3
推荐指数
1
解决办法
699
查看次数

iOS 自定义共享扩展:加载选定的图像

我正在为我的应用程序开发一个共享扩展程序,以便能够使用它直接从库中共享图像。我有一个视图控制器和布局设置,但我正在努力让所选图像显示在UIImageView视图控制器内部。

目前,我的getImage()情况如下:

func getImage() {
    if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem {
        if let itemProvider = inputItem.attachments?.first as? NSItemProvider {
            itemProvider.loadItem(forTypeIdentifier: kUTTypeJPEG as String) { [unowned self] (imageData, error) in
                if let item = imageData as? Data {
                    self.imageView.image = UIImage(data: item)

                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

...但图像未加载。我在这里做错了什么?

ios swift ios-app-extension

3
推荐指数
1
解决办法
1279
查看次数