Невозможно добавить NSmutableDictionary в NSmutable Array - PullRequest
0 голосов
/ 20 января 2012

Невозможно добавить NSmutableDictionary в NSmutableArray, activityFeedArray является изменяемым массивом и инициализируется в заголовочном файле.

            NSMutableDictionary *dummyitem = [[NSMutableDictionary alloc]init];
            NSMutableDictionary *dummyitem2 = [[NSMutableDictionary alloc]init];
            NSMutableDictionary *dummyitem3 = [[NSMutableDictionary alloc]init];

            [dummyitem setObject:@"No Data Found" forKey:@"text"];
            [dummyitem2 setValue:dummyitem forKey:@"Title"];
            [dummyitem3 setObject:dummyitem2 forKey:@"ItemInfo"];

            NSLog(@"%@",dummyitem3);

            //dummyitem3 logs correct value here             

            if ([activitiesFeedArray count] == 0) 
            { 
                NSLog(@"%@",dummyitem3);
                //dummyitem3 logs correct value here
                [activitiesFeedArray addObject:dummyitem3];
                NSLog(@"%@",activitiesFeedArray);
                //activitiesFeedArray logs null value here
            }

Просмотр нагрузки

    (void)viewDidLoad
{
   [super viewDidLoad];
   activitiesFeedArray = [[NSMutableArray alloc]init];
}

Заголовочный файл

@interface SearchViewController : UIViewController <UISearchBarDelegate ,UITableViewDelegate , UITableViewDataSource>
{
  NSMutableArray *activitiesFeedArray;
}
@end

Ответы [ 3 ]

2 голосов
/ 20 января 2012

Вы не упоминаете, где находится этот код, но он явно работает за некоторое время до viewDidLoad, поэтому массив все еще равен нулю.

1 голос
/ 20 января 2012

Заменить [dummyitem2 setValue: dummyitem forKey: @ "Title"];с [dummyitem2 setObject: dummyitem forKey: @ "Заголовок"];

1 голос
/ 20 января 2012

Если это единственный код, который у вас есть, тогда он должен работать нормально, а NSLog вашего NSMutableArray не должен возвращать nil.Я скопировал и вставил ваш код в мой XCode, и он отлично работает.Вы должны делать что-то еще в вашем коде, чтобы изменить NSMutableArray.


Если вам интересно, что я сделал, чтобы доказать, что ваш код работает, я создал простой UIViewController с одной кнопкой в ​​нем.Затем я создал класс UIViewController и буквально скопировал ваш код в заголовочный файл и файл реализации.Я объявил NSMutableArray в заголовочном файле и инициализировал его в viewdidload (я скопировал и вставил их как есть).Я также поместил остальную часть вашего кода NSMutableDictionary в viewDidLoad, и он дал разумные результаты.Журнал NSMutableArray показывает, что он содержит правильные данные.

Иногда это помогает сделать чистую сборку, но, насколько я могу вам сказать, ваш код правильный и должен работать.

Кстати, у меня есть IOS5 и XCode 4.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...