2017-10-13 15 views
-1

私はSWIFT 4にアップデートした後に私のプロジェクトのコードの下に使用して、私のアプリがクラッシュし実行していますが、私はそれをどのように修正することができますスレッド1:。。EXC_BAD_INSTRUCTION(コード= EXC_I386_INVOP、サブコード= 0x0の

コード:?

func from(systemItem: UIBarButtonSystemItem)-> UIImage? { 
    let tempItem = UIBarButtonItem(barButtonSystemItem: systemItem, target: nil, action: nil) 

    // add to toolbar and render it 
    UIToolbar().setItems([tempItem], animated: false) 

    // got image from real uibutton 
    let itemView = tempItem.value(forKey: "view") as! UIView 
    for view in itemView.subviews { 
     if let button = view as? UIButton, let imageView = button.imageView { 
      return imageView.image 
     } 
    } 

    return nil 

    } 
} 
    extension UITextView { 

static let ScrollModeBottom = "UITextFieldScrollModeBottom" 
static let ScrollModeUp = "UITextFieldScrollModeUp" 
static let ScrollModeMiddle = "UITextFieldScrollModeMiddle" 

func scrollToBotom() { 
    let range = NSMakeRange((text as NSString).length - 1, 1); 
    scrollRangeToVisible(range); 
} 

var scrollMode: String { 
    let scrollViewHeight: Float = Float(frame.size.height) 
    let scrollContentSizeHeight: Float = Float(contentSize.height) 
    let scrollOffset: Float = Float(contentOffset.y) 

    if scrollOffset == 0 { 
     return UITextView.ScrollModeUp 
    } else if scrollOffset + scrollViewHeight == scrollContentSizeHeight { 
     return UITextView.ScrollModeBottom 
    } else { 
     return UITextView.ScrollModeMiddle 
    } 
} 

}

スレッド1:EXC_BAD_INSTRUCTION(コード= EXC_I386_INVOP、サブコード= 0x0の)

+1

どこでエラーが発生し、例外の理由は何ですか?私はKVC経由で 'view'を取得するために行にエラーが発生したと思います。 – vadian

答えて

0
// add to toolbar and render it 
    let bar = UIToolbar() 
    bar.setItems([tempItem], 
       animated: false) 
    bar.snapshotView(afterScreenUpdates: true) 

    //got image from real uibutton 
    let itemView = tempItem.value(forKey: "view") as! UIView 
    for view in itemView.subviews { 
     if let button = view as? UIButton, 
      let image = button.imageView?.image { 
      return image.withRenderingMode(.alwaysTemplate) 
     } 
    } 

    return nil 
    } 
} 
関連する問題