2017-07-05 3 views
-1

私は "exc bad命令コードexc i386 invop"問題に直面しました。私はこの問題を解決するために苦労しています。いずれかがこのpingの私を知っていれば...exc bad命令コードexc i386 invop swift NSArrayで

問題

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    print("didselect") 

    if(tableView == self.tabledata){ 
     print("Entered into tableview of listing") 
     let savearr : NSArray = UserDefaults.standard.object(forKey: "savedarray") as! NSArray 

     let addarr: NSArray = savearr.value(forKeyPath:"country") as! NSArray 
     let sumarr: NSArray = savearr.value(forKeyPath:"description") as! NSArray 
     let titarr: NSArray = savearr.value(forKeyPath:"title") as! NSArray 

は、その後、私はこのコードを試してみました:

if let savearr : NSArray = UserDefaults.standard.object(forKey: "savedarray") as? NSArray 
     { 
     let addarr: NSArray = savearr.value(forKeyPath:"country") as! NSArray 
     let sumarr: NSArray = savearr.value(forKeyPath:"description") as! NSArray 
     let titarr: NSArray = savearr.value(forKeyPath:"title") as! NSArray  
    let MenuViewController = self.storyboard?.instantiateViewController(withIdentifier: "five") as! FiveStepsViewController 

    MenuViewController.writeTitleString = String(describing: titarr[indexPath.row]) 

    MenuViewController.writeSummaryString = String(describing: sumarr[indexPath.row]) 

    MenuViewController.writeAddressString = String(describing: addarr[indexPath.row]) 

    //MenuViewController.writePriceString = String(describing: self.appDelegate.fivepricearray[indexPath.row]) 



     self.present(MenuViewController, animated: true, completion: nil) 
     } 
     else { 
      print("Error Occured while listing") 
     } 

そのは、常に他の部分に行く..

+0

確かに、私は、IOSに新たなんだともスタックオーバーフロー。私はこの投稿スタイルを次の投稿から変更します。 :) –

+1

あなたの提案をありがとう。私は自分の投稿を編集しました。 :) –

+0

私はまだこの問題の答えを探しています –

答えて

0

Here私は私のソリューション

コードが見つかりました:

if (titarr.count > 0) { 
     // rest of your code 
    } 
1

このタイプの問題は一般に、無限のデータを強制的にアンラップしようとするときに発生します。キーを再確認してください。そして、以下のコードスニペットに示すように従ってください。

guard let savearr = UserDefaults.standard.object(forked: "savedArray") as? NSArray, 
    let addarr = savearr.value(forKeyPath: "country") as? NSArray, 
    let summer = savearr.value(forKeyPath: "description") as? NSArray, 
    let titter = savearr.value(forKeyPath: "title") as? NSArray 

    else { return nil } 
+0

私はこれを試しました。しかし、それは動作していません –

+0

これを解決するために私を助けることができます!... –

+0

ええ、確かに..正確に問題に直面している –

1
let MenuViewController = self.storyboard?.instantiateViewController(withIdentifier: "five") as! FiveStepsViewController 

    if let savearr : NSArray = UserDefaults.standard.object(forKey: "savedarray") as? NSArray 
    { 
    let addarr: NSArray = savearr.value(forKeyPath:"country") as? NSArray 
    let sumarr: NSArray = savearr.value(forKeyPath:"description") as? NSArray 
    let titarr: NSArray = savearr.value(forKeyPath:"title") as? NSArray  


    MenuViewController.writeTitleString = String(describing: titarr[indexPath.row]) 

    MenuViewController.writeSummaryString = String(describing: sumarr[indexPath.row]) 

    MenuViewController.writeAddressString = String(describing: addarr[indexPath.row]) 

    } 
    else { 
     print("Error Occured while listing") 
    } 

self.present(MenuViewController, animated: true, completion: nil) 
+0

それは常に他の部分に行く! –

+0

配列をuserDefaultsに保存するコードをアップロードしてください。 –

+0

https://stackoverflow.com/q/45050957/7776881 –

関連する問題