2017-12-17 5 views
1

私はUITableViewController静的なセルを持って、私は、アプリケーションを実行し、それにつながるボタンをクリックすると、私はAppDelegateでSIGABRT信号を取得します。静的TableView NSRangeExceptionを取得

未使用の店舗を探してみましたが、機能しませんでした。ここで

は、コンソールログです:

Console Log

のUITableViewControllerコード:

import UIKit 
import os.log 

class SettingsTableViewController: UITableViewController { 

    // MARK: Properties 
    @IBOutlet weak var noteDisplayKindSwitch: UISwitch! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     notedisplayKindSwitch.setOn(Settings._displaynotesAsNames, animated: false) 
    } 

    @IBAction func ChangeNoteDisplayKind(_ sender: UISwitch) { 
     Settings._displayNotesAsNames = sender.isOn 

    // MARK: - Table view data source 

    override func numberOfSections(in tableView: UITableView) -> Int { 
     return 2 
    } 

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return 3 
    } 
} 

ストーリーボードでUITableViewController

The UITableViewController in the Storyboard

Connectiアドオン:

The Connections

は私が間違って何をしているのですか?おかげさまで

+1

コードの投稿ではなく、コードの画像を投稿する必要があります。 – vacawama

+0

質問を編集します。 Xcodeのコードをコピーして質問に貼り付けます。コードの上と下に空白行があることを確認してください。コードを強調表示し、StackOverflowエディタペインで '{}'を使用してインデントを適用します。 – vacawama

+0

あなたの投稿のフォーマットが改善されました。見てください。 – vacawama

答えて

0

で要素にアクセスしようとしています。 numberOfSectionsnumberOfRowsInSectionを実装する理由は、ストーリーボードの静的レイアウトで指定されているためです。

あなたは実装されているので:

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return 3 
} 

をあなたはすべてのセクションでは、嘘です3行を、持っているのiOSを語っています。したがって、iOSは最初のセクションの2番目の行にアクセスしようとし、そのセクションには1行しかないので、配列インデックスが範囲外です。

したがって、numberOfSectionsnumberOfRowsInSectionの実装を削除してください。

0

エラーメッセージを読み、コードの画像を投稿しないでください。あなたのtableView:cellforRowAtIndexPath方法で

どこかには、空の配列がありますが、あなたはあなたが静的細胞を使用しているインデックス1

関連する問題