[英]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.