私はsegueの準備をしようとしていますが、VCのインスタンスを設定するときにスレッド1のシグナルsigabrtエラーが発生します。私は、VCをインポート#import "NoteViewController.h"
ビューコントローラのインスタンスを設定するときにアプリケーションがクラッシュする
そして、私のセグエの準備中:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"ShowNote"]) {
NoteDetailViewController *noteDetailViewController = [segue destinationViewController];
NSIndexPath *selectedIndexPath = self.tableView.indexPathForSelectedRow;
NSInteger arrayItem = selectedIndexPath.row * 2;
noteDetailViewController.note = [_notes objectAtIndex:arrayItem];
} else if ([segue.identifier isEqualToString:@"AddNote"]) {
Note *note = [Note new];
[self.notes addObject:note];
NoteDetailViewController *noteDetailViewController = [segue destinationViewController]; // ERROR COMES HERE!
noteDetailViewController.note = note;
}
}
私は過去30分間デバッグしてきたが、私が起こっていただきました!を把握することはできません。ありがとう!
EDIT:
私は問題を発見したかもしれません。
***キャッチされない例外により 'NSInvalidArgumentException'、理由にアプリを終了: '非プロパティリストオブジェクトを挿入しようとする( "" )キーNOTESDATAのための'
ここにあります私のVCコード。
#import "NotesListTableViewController.h"
#import "Note.h"
#import "NoteDetailViewController.h"
@interface NotesListTableViewController()
@property (nonatomic, strong) NSMutableArray *notes;
@end
@implementation NotesListTableViewController
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
_notes = [[NSUserDefaults standardUserDefaults]
mutableArrayValueForKey:@"notesData"];;
}
return self;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.tableView reloadData];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
return [self.notes count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"NotesCell" forIndexPath:indexPath];
cell.textLabel.text = [_notes objectAtIndex:indexPath.row * 2];
// cell.textLabel.text = [self.notes[indexPath.row] title];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger titleToDelete = indexPath.row * 2;
NSInteger messageToDelete = titleToDelete - 1;
[_notes removeObjectAtIndex:titleToDelete];
[_notes removeObjectAtIndex:messageToDelete];
[[NSUserDefaults standardUserDefaults]setObject:_notes forKey:@"notesData"];
[self.notes removeObjectAtIndex:indexPath.row];
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"ShowNote"]) {
NoteDetailViewController *noteDetailViewController = [segue destinationViewController];
NSIndexPath *selectedIndexPath = self.tableView.indexPathForSelectedRow;
NSInteger arrayItem = selectedIndexPath.row * 2;
noteDetailViewController.note = [_notes objectAtIndex:arrayItem];
} else if ([segue.identifier isEqualToString:@"AddNote"]) {
Note *note = [Note new];
[self.notes addObject:note];
NoteDetailViewController *noteDetailViewController = [segue destinationViewController];
noteDetailViewController.note = note;
}
}
- (IBAction)doneButton:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
例外メッセージは何をしようと?どのラインがクラッシュするのですか? – Paulw11
コードをスクロールすると、クラッシュしたノートを追加しましたが、2番目の 'NoteDetailViewController * noteDetailViewControlelr = [segue destinationViewController];でクラッシュしました。メッセージは2017-04-10 19:37:20.235616-0400 final try [74022:7653033] [ユーザデフォルト]非プロパティリストオブジェクトまたはlibC++を設定しようとしました。abi.dylib:NSExceptionタイプのキャッチされていない例外で終了します。 (lldb)どちらがわからないか – user7847400
その行にクラッシュする例外ブレークポイントを設定します。サポートされていないユーザーのデフォルトに何かを書き込もうとしているため、クラッシュしています – Paulw11