簡體   English   中英

如何將UITextField文本保存到NSString?

[英]How to save UITextField Text to NSString?

在主視圖控制器中,我有一個UITextField,並且試圖將輸入的文本保存到我的家庭作業模型(類)中的NSString中。

家庭作業

#import <Foundation/Foundation.h>

@interface Homework : NSObject

@property (nonatomic, strong) NSString *className;
@property (nonatomic, strong) NSString *assignmentTitle;


@end

家庭作業

#import "Homework.h"

@implementation Homework

@synthesize className = _className;
@synthesize assignmentTitle = _assignmentTitle;

@end

在我的AssignmentViewController中,我創建一個Homework類型的對象,並嘗試將其設置為等於按下“保存”按鈕時輸入到UITextField中的對象。

分配視圖控制器

#import <UIKit/UIKit.h>
#import "Homework.h"

@interface Assignment : UIViewController {


}

@property(nonatomic) IBOutlet UITextField *ClassNameField;
@property(nonatomic) IBOutlet UILabel *ClassNameLabel;
@property (weak, nonatomic) IBOutlet UIButton *SaveButton;

@property (nonatomic, strong) Homework *homeworkAssignment;


- (IBAction)Save:(UIButton *)sender;

@end

AssignmentViewController.m

- (IBAction)Save:(UIButton *)sender {

self.homeworkAssignment.className = self.ClassNameField.text;
NSLog(@"SaveButtonPressed %@", self.homeworkAssignment.className);

}

NSLog打印出className為(空)。 誰能幫助我找出我做錯了什么? 這是我有史以來第一個iOS應用程序(Hello World除外)。

編輯:這是使用ARC

編輯:我試圖改變
self.homeworkAssignment.className = self.ClassNameField.text; 到self.homeworkAssignment.className = @“ TEST”; 並且日志仍然顯示(Null)。

仔細檢查您是否正確鏈接了ClassNameField 插座 ,並且您正在初始化homeworkAssignment 就像是。-

self.homeworkAssignment = [[Homework alloc] init];

順便說一句,您應該考慮對變量名使用camelCase表示法:)

老實說,第一步總是很艱難,但是您應該以正確的方式學習它,呵呵

首先以這種方式進行合成:

@synthesize labelAssignmentTitle,labelClassName;

要么

@synthesize labelAssignmentTitle;
@synthesize labelClassName;

沒有必要做到以下幾點:

@synthesize className = _className;
@synthesize assignmentTitle = _assignmentTitle;

現在,如果您從頭開始以正確的方式進行初始化,那么以后您會發現它變得容易得多!

家庭作業

@interface HomeWork : NSObject
@property (nonatomic, strong) NSString *className;
@property (nonatomic, strong) NSString *assignmentTitle;

-(id)initWithClassName:(NSString *)newClassName andAssignmentTitle:(NSString*)newAssigmentTitle;

家庭作業

@implementation HomeWork
@synthesize assignmentTitle,className;

-(id)initWithClassName:(NSString *)newClassName andAssignmentTitle:(NSString*)newAssigmentTitle {
    self = [super init];
    if(self){
        assignmentTitle = newAssigmentTitle;
        className = newClass;

    }
    return self;
}
@end

ViewController.m

- (IBAction)saveIt:(id)sender {
    HomeWork *newHomeWork = [[HomeWork alloc]initWithClassName:[labelClassName text]andAssignmentTitle:[labelAssignmentTitle text]];
}

因此,您可以直接使用兩個UITextFields給定的參數創建一個newHomeWork對象。

現在在您的日志消息中打印出來,看看會發生什么;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM