Объект ios C Bool не устанавливается

im создает пользовательский UITextField, но не устанавливает BOOL ??

MyCustomTextField.h

#import <UIKit/UIKit.h> @interface OMTextField : UIControl <UITextFieldDelegate> { UITextField *_theTextField; BOOL _hasBackGroundImage; } @property (nonatomic, retain)UITextField *theTextField; @property (nonatomic) BOOL hasBackGroundImage; @end 

MyCustomTextField.m

 #import "OMTextField.h" @implementation OMTextField @synthesize theTextField = _theTextField; @synthesize hasBackGroundImage = _hasBackGroundImage; - (void)dealloc { [_theTextField release]; [super dealloc]; } - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code self.theTextField = [[[UITextField alloc]initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)]autorelease]; //self.theTextField.borderStyle = UITextBorderStyleLine; self.theTextField.text = @"textField"; self.theTextField.delegate = self; if (self.hasBackGroundImage) { NSLog(@"lo tienes"); } if (!self.hasBackGroundImage) { NSLog(@"nana tienes"); } [self addSubview:self.theTextField]; } return self; } /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ @end 

и вызов в моем MainVC:

 MyCustomTextField *textField = [[[MyCustomTextField alloc]initWithFrame:CGRectMake(400, 160, 150, 40)]autorelease]; textField.hasBackGroundImage = YES; textField.backgroundColor = [UIColor grayColor]; textField.theTextField.borderStyle = UITextBorderStyleLine; [self.view addSubview:textField]; 

поэтому он показывает отлично, но, как вы видите, im устанавливает textField.hasBackGroundImage = YES;

но когда выполняется, я вижу сообщение для BOOL = NO ??

 nana tienes 

Так что я пропустил ?, почему это не оценивается как ДА?

благодаря!

2 Solutions collect form web for “Объект ios C Bool не устанавливается”

Вы разместили свой NSLog в методе initWithFrame. Это вызывается на линии, прежде чем вы установите textField.hasBackGroundImage, когда значение по-прежнему равно NO.

Если вы хотите, чтобы это значение получилось установлено, добавьте следующий метод в MyCustomTextField:

 - (void)setHasBackGroundImage:(BOOL)flag { _hasBackGroundImage = flag; } 

Затем поставьте точку останова на этот метод. Вы должны увидеть, как он ударил, как только вы его установили.

Вы вызываете initWithFrame: который печатает «nana tienes», потому что значение по умолчанию для BOOL равно FALSE (или NO ). Затем вы установите для него значение YES после .

Если вы поместите тест после того, как вы установите его на YES , он напечатает «lo tienes».

  • iPhone: расширения файлов изображений не связаны с моим приложением
  • Interface Builder: выберите носитель на основе целевого
  • есть ли у кого-нибудь рабочий пример выделенной собственности в базовых данных?
  • Как установить размер шрифта и имя в программном обеспечении Core Text?
  • Проблема с «Несколько методов с именем ...»
  • Цель C: Сравнение CGPoints
  • Вход в DropBox в приложении
  • элегантный способ внедрения iOS для обновления приложений (функция разблокировки)
  • c, obj c перечисление без тега или идентификатора
  • Устанавливает базу данных SQLite с C ++ на iOS?
  • Пример для синтаксического анализа (X) Html с libxml2 в iOS
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.