NSArray -initWithObjects: не хранит объекты - PullRequest
0 голосов
/ 02 декабря 2010

Я получаю действительно странный вывод от этого конструктора. На самом деле он не хранит ни одного из объектов. Я отладил метод, и сохраняемые объекты были правильно инициализированы. Я использую этот массив для установки VC на UITabBarController и панель вкладок пуста. Вот код

-(void)initBarItemsWithAllFeatures {

    /*
     Issues 
     */


    UIImage *issuesImage = [UIImage imageNamed:@"issues_on.png"];


    UITabBarItem *issuesTabBarItem = [[UITabBarItem alloc]initWithTitle:NSLocalizedString(@"IssuesTabBarTitle",@"") image:issuesImage tag:0];

    [issuesImage release];

    issuesNavigationController.tabBarItem =issuesTabBarItem;

    [issuesTabBarItem release];
    /*
     thumbs
     */

    ThumbsViewController *thumbsViewController =  [[ThumbsViewController alloc]initWithNibName:@"ThumbsViewController" bundle:nil];


    UIImage *thumbsImage = [UIImage imageNamed:@"thumbs_on.png"];

    UITabBarItem *thumbsTabBarItem = [[UITabBarItem alloc]initWithTitle:NSLocalizedString(@"ThumbsTabBarTitle",@"") image:thumbsImage tag:1];

    [thumbsImage release];

    thumbsViewController.tabBarItem = thumbsTabBarItem;

    [thumbsTabBarItem release];


    /*
     contents
     */

    ContentsViewController *contentsViewController = [[ContentsViewController alloc]initWithNibName:@"ContentsViewController" bundle:nil];

    UIImage *contentsImage = [UIImage imageNamed:@"contents_on.png"];

    UITabBarItem *contentsTabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString (@"ContentsTabBarTitle",@"") image:contentsImage tag:2];

    [contentsImage release];

    contentsViewController.tabBarItem = contentsTabBarItem;

    [contentsTabBarItem release];


    /*
     search
     */

    SearchViewController *searchViewController = [[SearchViewController alloc]initWithNibName:@"SearchViewController" bundle:nil];

    UIImage *searchImage = [UIImage imageNamed:@"search_on.png"];

    UITabBarItem *searchTabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString (@"SearchTabBarTitle",@"") image:searchImage tag:3];

    [searchImage release];

    searchViewController.tabBarItem = searchTabBarItem;

    [searchTabBarItem release];


    /*
     favourites
     */

    FavouritesViewController *favouritesViewController = [[FavouritesViewController alloc]initWithNibName:@"FavouritesViewController" bundle:nil];

    UIImage *favouritesImage = [UIImage imageNamed:@"favourites_on.png"];

    UITabBarItem *favouritesTabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString (@"FavouritesTabBarTitle",@"") image:contentsImage tag:4];

    [favouritesImage release];

    favouritesViewController.tabBarItem = favouritesTabBarItem;

    [favouritesTabBarItem release];

    /*
     contact
     */

    ContactViewController * contactViewController = [[ContactViewController alloc] initWithNibName:@"ContactViewController" bundle:nil];

    UIImage *contactImage = [UIImage imageNamed:@"contact_on.png"];

    UITabBarItem *contactTabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString (@"contactTabBarTitle",@"") image:contactImage tag:5];

    [contactImage release];

    contactViewController.tabBarItem = contactTabBarItem;

    [contactTabBarItem release];



    /*

     add to an array

     */

    allFeaturesAvailableTabBarItemArray = [[NSArray alloc] initWithObjects:
                                          issuesNavigationController,
                                          thumbsViewController,
                                          contentsViewController,
                                          searchViewController,
                                          favouritesViewController,
                                          contactViewController, nil];


    /*
     release objects
     */

    [thumbsViewController release];
    [contentsViewController release];
    [searchViewController release];
    [favouritesViewController release];
    [contactViewController release];


}

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Я закончил тем, что удалил один за другим объекты в массиве, чтобы увидеть, какой из них вызывает проблемы.первый добавленный объект был 0x0 (nil), поэтому он ничего не добавил в массив.Странно то, что

на

issuesNavigationController.tabBarItem =issuesTabBarItem;

Я вызываю свойства для нулевого объекта и не запускаю никаких сигналов тревоги.Это «ожидаемое» или это ошибка, о которой я должен сообщить?

Большое спасибо всем вам за ваши быстрые ответы.Я тоже позабочусь о перевыпуске Спасибо!

1 голос
/ 02 декабря 2010

Я думаю, что вы, возможно, слишком много выпускаете изображения панели вкладок (FWIW).

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