2015-05-28 2 views
0

Я пытаюсь заполнить массив словаря. Но xcode говорит, что EXC_BAD_ACCESSEXC_BAD_ACCESS при создании NSMutalbeArray из NSDictionary

Это основная операция. где ошибка?

@interface MenuViewController() 
@property (nonatomic, strong) NSMutableArray *items; 
@end 

@implementation MenuViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.items = [[NSMutableArray alloc]initWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title","MenuHomeIcon.png",@"image", nil], 
                 [NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title","MenuFindIcon.png",@"image", nil], 
                 [NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title","MenuProfileIcon.png",@"image", nil], 
                 [NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title","MenuSettingsIcon.png",@"image", nil],nil]; 

} 

Я попробовал другой путь, но результат тот же:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.items = [[NSMutableArray alloc]initWithCapacity:4]; 

    [self.items addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title","MenuHomeIcon.png",@"image", nil]]; 
    [self.items addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title","MenuFindIcon.png",@"image", nil]]; 
    [self.items addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title","MenuProfileIcon.png",@"image", nil]]; 
    [self.items addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title","MenuSettingsIcon.png",@"image", nil]]; 

} 

ответ

7

A @ отсутствует перед строкой имя изображения

[self.items addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title","MenuHomeIcon.png",@"image", nil]]; 

должен быть

[self.items addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuHomeIcon.png",@"image", nil]]; 
1

Вы забыли иметь @ для одного из параметров «MenuHom eIcon.png»

self.items = [[NSMutableArray alloc]initWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuHomeIcon.png",@"image", nil], 
                [NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuFindIcon.png",@"image", nil], 
                [NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuProfileIcon.png",@"image", nil], 
                [NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuSettingsIcon.png",@"image", nil],nil]; 
1

попробовать эти ..

@ отсутствует перед именем изображения строки в ваших self.items ..

сделать это ..

self.items = [[NSMutableArray alloc]initWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuHomeIcon.png",@"image", nil], 
                [NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuFindIcon.png",@"image", nil], 
                [NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuProfileIcon.png",@"image", nil], 
                [NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuSettingsIcon.png",@"image", nil],nil]; 

и для addObject ..

[self.items addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuHomeIcon.png",@"image", nil]]; 
-1

Все приведенные выше ответы выглядят прекрасно, но может быть, вы хотите добавить фактическое изображение и файл? Если это так, вы должны добавить что-то вроде этого:

[self.items addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",[UIImage imageNamed:@"MenuHomeIcon.png"],@"image", nil]]; 
0

Я думаю, что ты был забыл добавить «@» так Просто добавьте этот

self.items = [[NSMutableArray alloc] init]; 

[self.items addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"home",@"title",@"MenuHomeIcon.png",@"image", nil]]; 
Смежные вопросы