【发布时间】:2018-01-28 11:57:29
【问题描述】:
我需要你的帮助!我正在尝试将一组选定的 PHAsset 从我的第一个 ViewController 传递到下一个。 我在这里声明数组:
import UIKit
import Photos
import BSImagePicker
class ViewControllerSelectPhotos: UIViewController {
@IBOutlet weak var btnSelect: UIButton!
@IBOutlet weak var btnStartGame: UIButton!
@IBOutlet weak var lblStatus: UILabel!
var SelectedAssets = [PHAsset]()
并在此处添加带有名为 BSImagepicker 的 pod 的 PHAsset:
@IBAction func btnSelectPhotos(_ sender: UIButton) {
let vc = BSImagePickerViewController()
self.bs_presentImagePickerController(vc, animated: true, select: { (asset: PHAsset) -> Void in
}, deselect: { (asset: PHAsset) -> Void in
}, cancel: { (assets: [PHAsset]) -> Void in
}, finish: { (assets: [PHAsset]) -> Void in
for i in 0..<assets.count
{ self.SelectedAssets.append(assets[i])
}
}, completion: nil)
}
然后我使用prepare for segue函数来传递数组:
override func prepare(for segue: UIStoryboardSegue, sender: Any? ) {
if (segue.identifier == "SegueToViewControllerGame") {
(segue.destination as! ViewControllerGame).SelectedAssetsGame = (SelectedAssets as AnyObject) as! [PHAsset]
}
}
在第二个 ViewController 中我想将数组 SelectedAssets 保存在数组 SelectedAssetsGame 中:
class ViewControllerGame: UIViewController {
var SelectedAssetsGame: [PHAsset] = []
我总是收到NSInvalidArgumentException。我能做什么?
非常感谢!
【问题讨论】:
-
SelectedAssets包含什么?如果它已经包含[PHAsset],你为什么要投射到AnyObject -
SelectedAssets 包含照片库中的 PHAsset。我正在铸造,因为 Xcode 建议它。即使我不这样做,我也会得到同样的异常。
-
请显示/编辑您声明的代码并将您的 PHAsset 对象添加到您的
SelectedAssets数组。还有你的SelectedAssets变量声明。 -
好的,我做到了。感谢您的帮助!
标签: ios arrays swift segue assets