Вопрос про UITabBarItem - PullRequest
       4

Вопрос про UITabBarItem

0 голосов
/ 18 мая 2011
- (id) init

{
    [super initWithNibName : nil
                    bundle : nil];  
    UITabBarItem *tbi = [self tabBarItem];  
    [tbi setTitle : @"Hypnosis"];   
    UIImage *i = [UIImage imageNamed : @"Hypno.png"];   
    [tbi setImage : i];         
    return self;        
}

Рассмотрим приведенный выше пример кода, мои вопросы:

1

Вызов метода "setImage", но я не могу найти соответствующее свойство "Image" в документации.

2

UIImage * i присваивается оператором "[tbi setImage: i]" свойству Image.Сохраняет ли "* i" tbi?Если да, то должны ли мы выпускать «i» сразу после задания?

Надеюсь, что какой-нибудь знающий человек поможет мне найти ответы.

Ответы [ 2 ]

1 голос
/ 18 мая 2011

необязательно должно быть свойство image, объявленное для класса, чтобы иметь метод setImage: - свойство может подразумеваться как существующее из-за существования сеттеров / геттеров. i будет сохранено TabBarItem - это ответственность API-интерфейса установщика. Это стандартное поведение. Наконец, не отпускайте i после вызова setImage:. У вас нет ссылки на i, поскольку она была возвращена фабричным методом, а не вызовом [[alloc] init]. НТН

0 голосов
/ 18 мая 2011

1) Прежде всего, если есть метод setX:, это не обязательно означает, что существует свойство x (я думаю, вы это понимаете). Но, как я проверил документацию, нет ни свойства image, ни setImage:, поэтому это частный API. Как сказано в ViewController PG, вам не следует запрашивать существующий UITabBarItem, а создавать его самостоятельно и присваивать свойству tabBarItem вашего VC. Как то так:

...

UIImage *image = [UIImage imageNamed : @"Hypno.png"];
UITabBarItem* theItem = [[UITabBarItem alloc] initWithTitle:@"Hypnosis" image:image tag:0];
self.tabBarItem = theItem;
[theItem release];

...

2) Вы не должны выпускать изображение в этой ситуации, потому что у вас его нет. Автоматически выпущен методом imageNamed:. Но если вы создали его методом [[UIImage alloc] init..], вы должны были бы уменьшить его количество. И изображение «да» будет сохранено tabBarItem.

Надеюсь, это поможет!

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