2017-04-10 10 views
-1

私は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 
+0

例外メッセージは何をしようと?どのラインがクラッシュするのですか? – Paulw11

+0

コードをスクロールすると、クラッシュしたノートを追加しましたが、2番目の 'NoteDetailViewController * noteDetailViewControlelr = [segue destinationViewController];でクラッシュしました。メッセージは2017-04-10 19:37:20.235616-0400 final try [74022:7653033] [ユーザデフォルト]非プロパティリストオブジェクトまたはlibC++を設定しようとしました。abi.dylib:NSExceptionタイプのキャッチされていない例外で終了します。 (lldb)どちらがわからないか – user7847400

+0

その行にクラッシュする例外ブレークポイントを設定します。サポートされていないユーザーのデフォルトに何かを書き込もうとしているため、クラッシュしています – Paulw11

答えて

関連する問題