누구나 iOS 10에서 UIActivityView를 사용하는 방법을 알고 있습니까? 이제는 Swift 3.0에서 어떤 이유로 컴파일되고 빌드되지만 응용 프로그램이 다운되는 코드 결과를 사용하여 공유 버튼을 누른 후 응용 프로그램이 실행되면 iOS 9.3 및 Swift 2.0에서 완벽하게 작동합니다. 신호 SIGABRT와 응용 프로그램 충돌 나는 그것을 감사하겠습니다 나를 도울 수iOS 10의 UIActivityViewController
@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
}
}
사람 : 코드 라인 6 let objectsToShare = [textToShare] as! AnyObject
의 의견에 지정된대로
이 Thread1이 발생합니다.
왜 배열을 AnyObject로 캐스트합니까? 그건별로 의미가 없습니다. – Andy
@Andy 왜 내가 실제로 그렇게했는지 확신 할 수 없다. 어떤 이유로 컴파일러가 불평하는 코드에서 해당 텍스트를 제거하더라도. 그것은 의미가 있고 캐스트를하지 않는 것이 더 효율적이지만, 나는 그것 없이는 어떻게 작동하게하는지에 대해서는 100 %가 아닙니다. – KSigWyatt
만약'UIActivityViewController (activityItems :'함수가 여기'objectsToShare as! [AnyObject]'함수의 캐스트에서 캐스팅을 사용하기 때문에 그럴 것 같았습니다. – KSigWyatt