В Obj-c (xCode) как отобразить эту строку в текстовом поле? - PullRequest
2 голосов
/ 23 марта 2011

Я пытаюсь создать приложение для практики, которое берет два введенных слова (слово1, слово2) и складывает их вместе, чтобы составить сложное слово.Я очень новичок в этом и хотел бы знать правильный способ отображения этих двух переменных под действием «buttonPressed».

Вот файл заголовка ...

#import <UIKit/UIKit.h>

@interface Word_CombinerViewController : UIViewController {
    UITextField *word1;
    UITextField *word2;
    UITextField *display;
    UIButton *mashButton;

}
@property (nonatomic, retain) IBOutlet UITextField *word1;
@property (nonatomic, retain) IBOutlet UITextField *word2;
@property (nonatomic, retain) IBOutlet UITextField *display;
@property (nonatomic, retain) IBOutlet UIButton *mashButton;
-(IBAction)textFieldDoneEditing:(id)sender;
-(IBAction)backgroundTap:(id)sender;
-(IBAction)buttonPressed:(id)sender;


@end

А вотфайл реализации (.m) ...

#import "Word_CombinerViewController.h"

@implementation Word_CombinerViewController
@synthesize word1;
@synthesize word2;
@synthesize display;
@synthesize mashButton;


-(IBAction)textFieldDoneEditing:(id)sender {
    [sender resignFirstResponder];
}

-(IBAction)backgroundTap:(id)sender {
    [word1 resignFirstResponder];
    [word2 resignFirstResponder];
}

-(IBAction)buttonPressed:(id)sender {
    NSString *newText = [NSString: @word1, @word2]
    display.text = newText;
    [newText release]

}

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}


- (void)dealloc {
    [word1 release];
    [word2 release];
    [display release];
    [mashButton release];
    [super dealloc];
}

@end

Я знаю, что этот код, вероятно, полон ошибок, но каждый должен где-то начинать, верно?Любая обратная связь будет принята с благодарностью, спасибо!

Ответы [ 3 ]

2 голосов
/ 23 марта 2011
NSString *newText = [NSString: @word1, @word2]

Этот код не имеет никакого смысла.Первая часть сообщения - получатель, и в нем не будет двоеточий.Вторая часть - это само сообщение, то есть имя метода и все необходимые параметры.То, что вы ищете:

NSString *newText = [NSString stringWithFormat:@"%@%@", word1, word2];

-stringWithFormat: метод использует строку формата (очень похоже на printf ()) и переменное количество параметров для заполнения заполнителей в строке формата.

Кроме того, когда вы создаете строку (или любой объект), используя такой «удобный метод», как этот, вы не должны его освобождать.Вы не сохранили, не распределили и не скопировали его, поэтому не несете ответственности за его публикацию.Вы захотите удалить эту строку из вашего метода -buttonPressed.

0 голосов
/ 23 марта 2011

Здесь вы ошиблись.

-(IBAction)buttonPressed:(id)sender {
    NSString *newText = [NSString stringWithFormat:@"%@ %@", word1.text word2.text]
    display.text = newText;
    [newText release]

}
0 голосов
/ 23 марта 2011

Попробуйте это:

-(IBAction)buttonPressed:(id)sender {
    NSString *newText = [word1.text stringByAppendingString:word2.text]
    display.text = newText;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...