2

だから私はXcodeで作業しており、を使用して通知NSNotificationCenterに添付しようとしました。NSDictionaryuserInfo

NSArray *objects = [NSArray arrayWithObjects:@"Example Name", @"Example Description", @"Example Date", nil];
NSArray *keys = [NSArray arrayWithObjects:@"name", @"description", @"date", nil];
    NSDictionary *dict = [NSDictionary 
                               dictionaryWithObjects:objects 
                               forKeys:keys];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"Notification" object:nil userInfo:dict];

アプリを実行して通知を投稿しようとすると、次の行でクラッシュします。

NSArray *keys = [NSArray arrayWithObjects:@"name", @"description", @"date", nil];

後で、配列のサイズが 2 オブジェクトを超えると、アプリがクラッシュすることがわかりました。

したがって、コードを以下のスニペットに変更すると、機能します。

NSArray *objects = [NSArray arrayWithObjects:@"Example Name", @"Example Description", nil];
NSArray *keys = [NSArray arrayWithObjects:@"name", @"description", nil];
NSDictionary *dict = [NSDictionary 
                                   dictionaryWithObjects:objects 
                                   forKeys:keys];
        [[NSNotificationCenter defaultCenter] postNotificationName:@"Notification" object:nil userInfo:dict];

これを回避する方法はありますか、それともひどく間違ったことをしていますか?

4

1 に答える 1

1

このコードはコンパイルされますか? プロジェクトのクリーニングと再構築を試みます。

于 2012-12-27T00:58:37.710 に答える