[UIDeviceRGBColor set]: сообщение отправлено освобожденному экземпляру

Я разрабатываю приложение, такое как Instagram. У меня есть код для cellForRowAtIndexPath, каждый раз, когда он создает объект для расстегивания, и это автоматический выпуск. эта кнопка отображает имя пользователя, и это может быть 1,2,3,4,5, .. всего, как пользователи. для этого я создаю UIButton, зависящий от типа cout. Я не использую ARC.

но иногда (не каждый раз) происходит сбой, когда setColour.

Я включил NSZombie, и он продолжает говорить:

[UIDeviceRGBColor set]: сообщение отправлено освобожденному экземпляру 0x21b526f0

            UIButton *btnLikeUserName = [[[UIButton alloc] init] autorelease];
                [btnLikeUserName.titleLabel setFont:[UIFont boldSystemFontOfSize:12]];

                if (posx + size.width > 280) {
                    posy = posy + 22;
                    posx = 18;
                    btnLikeUserName.frame = CGRectMake(posx,posy,size.width,size.height);
                    posx = posx + size.width + 5;
                }
                else {
                    btnLikeUserName.frame = CGRectMake(posx,posy,size.width,size.height);
                    posx = posx + size.width + 5;
                }
                btnLikeUserName.tag = shareObjU.userId;
                [btnLikeUserName setTitle:text forState:UIControlStateNormal];
                [btnLikeUserName setTitleColor:[UIColor colorWithRed:50/255.0 green:79/255.0 blue:133/255.0 alpha:1.0] forState:UIControlStateNormal]; ////Hear is crash
                [btnLikeUserName addTarget:self action:@selector(btnLikeUserNameClick:) forControlEvents:UIControlEventTouchUpInside];
                [cell.viewLikeComment addSubview:btnLikeUserName];

я также вижу следующую ссылку

UISwitch setThumbTintColor вызывает сбой (только для iOS 6)?

1 из 4 цветов возвращает ошибки

Приложение iOS аварийно завершает работу при использовании colorWithRed:green:blue:alpha

и прочее.. но все говорит за глобальный Object. не локальный объект. как я могу это решить. Спасибо


person SAMIR RATHOD    schedule 25.04.2013    source источник
comment
Вместо выделения кнопки пользовательского интерфейса используйте этот метод [кнопка пользовательского интерфейса], а затем попробуйте его.   -  person Prav    schedule 25.04.2013


Ответы (1)


попробуй этот код...

[btnLikeUserName setTitleColor:[UIColor colorWithRed:((float) 50 / 255.0f)  
                           green:((float) 79 / 255.0f)  
                            blue:((float) 133 / 255.0f)  
                           alpha:1.0f] forState:UIControlStateNormal];

ИЛИ Также вы можете установить UIColor, как показано ниже.

[btnLikeUserName setTitleColor:[UIColor colorWithRed:50.0f/255.0f green:79.0f/255.0f blue:133.0f/255.0f alpha:1.0] forState:UIControlStateNormal];

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

   UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

*ОБНОВЛЕНИЕ:* См. пример, который я добавляю в каждую свою ячейку с помощью нескольких кнопок, таких как GridView.

 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
 button.frame = rect;
 button.tag = imageIndex;
 [button addTarget:self  action:@selector(btnTemp_Clicked:)
                 forControlEvents:UIControlEventTouchDown];

 [button setTitle:[arrTime objectAtIndex:imageIndex] forState:UIControlStateNormal];
 [button.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:12]];

 //[button setTitleColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"circle03.jpg"]] forState:UIControlStateNormal ];                
 [button setTitleColor:[UIColor colorWithRed:50.0f/255.0f green:79.0f/255.0f blue:133.0f/255.0f alpha:1.0] forState:UIControlStateHighlighted ];

 [button setNeedsDisplay];

 [gridCell.contentView addSubview:button];
person Paras Joshi    schedule 25.04.2013
comment
но ошибка в том, что сообщение отправлено в освобожденный экземпляр, я думаю, что мое имя btnLikeUserName освобождено. я прав? - person SAMIR RATHOD; 25.04.2013
comment
@SAMIRRATHOD здесь ошибка такого типа возникла с сообщением UIDeviceRGBColor, когда его тип параметра не совпадает с его методом .. попробуйте это и дайте мне знать .. :) - person Paras Joshi; 25.04.2013
comment
хорошо, я попробую, и я скажу вам, что такое статус. Спасибо за ответ - person SAMIR RATHOD; 25.04.2013
comment
@SAMIRRATHOD также определяет эту кнопку следующим образом: UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; - person Paras Joshi; 25.04.2013
comment
я обновляю код, пожалуйста, проверьте это и попробуйте... также попробуйте добавить эту строку после установки цвета и всего остального [кнопка setNeedsDisplay]; - person Paras Joshi; 25.04.2013
comment
давайте продолжим это обсуждение в чате - person SAMIR RATHOD; 25.04.2013
comment
да, но иногда это отличается от архитектуры .. :) - person Paras Joshi; 25.04.2013
comment
Извините, как это может ответить на вопрос? - person maroux; 25.04.2013
comment
@Mar0ux, эй, какое-то время с UIColor требуется передавать значение с плавающей запятой и значение от 1 до 0 .. и другие возможности. Я публикую код UIButton с его типом, а не с выделением и определением авторелиза ... :) здесь это происходит, когда цвет кнопки не сохраняем, и мы назначаем setColor кнопке... см. эту ссылку, помощник stackoverflow.com/questions/11318138/ :) - person Paras Joshi; 26.04.2013
comment
Но OP использует стандартный UIButton, который будет сохранять экземпляр UIColor. - person maroux; 26.04.2013
comment
но см. ссылку выше, чувак, которая подробно объясняет весь регион ... :) - person Paras Joshi; 26.04.2013