UITextField, где хранятся значения? - PullRequest
0 голосов
/ 28 июля 2011

Я создал простой графический интерфейс с 3 UITextField

Добавил кнопку, когда нажимал кнопку отправки, для теста я напечатал 3 текстовых значения ... которые я печатаю в текстовом поле каждого поля.Что мне здесь не хватает?я должен сохранить его на диске мобильного устройства, прежде чем .. отправить?

бета-версия IOS 5.0

#import <UIKit/UIKit.h>

@interface CloudClientViewController : UIViewController

{
    @private
    UITextField *usernameData;
    UITextField *passwordData;
    UITextField *ngccData;
    UIButton *submitButton;
}

@property (nonatomic,retain) IBOutlet UITextField *usernameData;
@property (nonatomic,retain) IBOutlet UITextField *passwordData;
@property (nonatomic,retain) IBOutlet UITextField *ngccData;
@property (nonatomic,retain) UIButton *submitButton;
-(IBAction)submitButton:(id)sender;

@end



- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.


    /*

     Allocting memory for the username password and the ngcc server

     */

    usernameData = [[UITextField alloc]init];
    passwordData = [[UITextField alloc]init];
    ngccData = [[UITextField alloc]init];










}

-(IBAction)submitButton:(id)sender

{

NSLog(@"The value that was entered to usernameData is: %@",usernameData.text);
NSLog(@"The value that was entered to passwordData is: %@",passwordData.text);
NSLog(@"The value that was entered to ngccData is: %@",ngccData.text);

}

Теперь, когда в командной строке я ввожу просто test как строку в поле UITextField и нажимаю submit, я ожидаю увидеть тестовую строку как значение, вместо этого я вижу ноль.

Идеи?

GNU gdb 6.3.50-20050815 (версия Apple gdb-1705) (вторник, 5 июля 07:28:08 UTC 2011) Copyright 2004 Free Software Foundation, Inc. GDB - свободное программное обеспечение, на которое распространяется стандартная общественная лицензия GNU.и вы можете изменять его и / или распространять его копии при определенных условиях.Введите «показать копирование», чтобы увидеть условия.На GDB нет абсолютно никаких гарантий.Тип "показать гарантию" для деталей.Эта GDB была настроена как «x86_64-apple-darwin» .sharedlibrary apply-load-rules all Присоединение к процессу 10248. 2011-07-27 16: 52: 56.235 CloudClient [10248: 207] Значение, которое было введено в usernameData:(null) 2011-07-27 16: 52: 56.237 CloudClient [10248: 207] Значение, введенное в passwordData:: (null) 2011-07-27 16: 52: 56.238 CloudClient [10248: 207] Значение, котороебыл введен в ngccData is: (null)

1 Ответ

0 голосов
/ 28 июля 2011

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

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

Затем вы вводите текст в одно из текстовых полей в вашем представлении (загружается из пера)и удивляетесь, почему совершенно другое текстовое поле, созданное вами в -viewDidLoad, не содержит введенный вами текст.

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