任何人都知道如何在iOS 10中使用UIActivityView?现在,由于某种原因,在Swift 3.0中它将编译和构建,但是当应用程序在按下共享按钮后使用以下代码导致应用程序崩溃时运行时......它在iOS 9.3和Swift 2.0中完美运行。UIActivityViewController在iOS 10中
如上代码行6或let objectsToShare = [textToShare] as! AnyObject
的评论指定导致线程1:信号SIGABRT和应用程序崩溃
@IBOutlet weak var detailDescriptionLabel: UITextView!
@IBAction func share(_ sender: AnyObject) {
let textToShare = detailDescriptionLabel.attributedText
let objectsToShare = [textToShare] as! AnyObject
// line above causes app crash in iOS 10 - compiled and built
// error is "Thread1: signal SIGABRT"
let activityVC = UIActivityViewController(activityItems: objectsToShare as! [AnyObject], applicationActivities: nil)
activityVC.popoverPresentationController?.sourceView = (sender as! UIView)
self.present(activityVC, animated: true, completion: nil)
}
class ActivityForNotesViewController: UIActivityViewController {
internal func _shouldExcludeActivityType(_ activity: UIActivity) -> Bool {
let activityTypesToExclude = [
//insert UIActivity here
]
if let actType = activity.activityType {
if activityTypesToExclude.contains(actType) {
return true
}
else if super.excludedActivityTypes != nil {
return super.excludedActivityTypes!.contains(actType)
}
}
return false
}
}
任何人都可以帮助我,我将不胜感激。
为什么要将数组投射到AnyObject。这没有什么意义。 – Andy
@Andy我不太确定为什么我最终真的做到了。由于某种原因,虽然当我从代码中删除该文本编译器抱怨。它确实有意义,并且更有效率地不做演员,但我不是100%关于如何在没有演员的情况下使其工作。 – KSigWyatt
如果我不得不猜测这是因为函数'UIActivityViewController(activityItems:'在此函数的decleration中使用了一个强制转换'objectsToShare as![AnyObject]' – KSigWyatt