這是我再次在過去的一個半小時裏一直在爲此奮鬥,似乎無法找到實現這一點的好方法。我基本上試圖在點擊按鈕時在標籤上顯示結果。 (剛開始使用xcode,所以我不確定這是否適合該操作)。總之,這裏是我的代碼和我的控制器上的方法:我有objective c和xcode將值分配給來自NSInteger類型變量的標籤
@interface Match : NSObject{
}
@property NSInteger *Id;
@property NSString *fighter1, *fighter2;
- (id) initWithWCFId:(NSInteger)matchId bracketId:(NSInteger)bracketId;
@end
@implementation Match
- (id) initWithWCFId:(NSInteger)matchId bracketId:(NSInteger)bracketId{
self = [self init];
if(self){
self.Id = &(matchId);
self.fighter1 = @"Person 1";
self.fighter2 = @"Person 2";
}
return self;
}
@end
---控制器---
@interface ViewController : UIViewController{
/*IBOutlet UITextField *txtFieldBracketId;
IBOutlet UITextField *txtFieldMatchId;*/
}
@property (weak, nonatomic) IBOutlet UITextField *txtFieldBracketId;
@property (weak, nonatomic) IBOutlet UITextField *txtFieldMatchId;
- (IBAction)btnSubmit:(id)sender;
@end
---實施
- (IBAction)btnSubmit:(id)sender {
@autoreleasepool {
Match *match = [[Match alloc]initWithWCFId:[_txtFieldMatchId.text integerValue] bracketId:[_txtFieldBracketId.text integerValue]];
self.lblMatchId.text = [[NSString alloc] initWithString:[NSNumber numberWithInt:match.Id]];
self.lblFighter1.text = [[NSString alloc] initWithString:match.fighter1];
self.lblFighter2.text = [[NSString alloc] initWithString:match.fighter2];
}
}
我基本上有兩個文本框。 現在當我點擊按鈕時,它將獲得這些文本框的值,然後顯示基於這些輸入的數據。它會顯示以下三個數據:
Id,Fighter1和Fighter2。
所以發生了什麼,當我按一下按鈕,整個事情停止,並給了我這個錯誤:
NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x74656e0' * First throw call stack: (0x1c90012 0x10cde7e 0x1d1b4bd 0x1c7fbbc 0x1c7f94e 0xae4841 0x2891 0x10e1705 0x18920 0x188b8 0xd9671 0xd9bcf 0xd8d38 0x4833f 0x48552 0x263aa 0x17cf8 0x1bebdf9 0x1bebad0 0x1c05bf5 0x1c05962 0x1c36bb6 0x1c35f44 0x1c35e1b 0x1bea7e3 0x1bea668 0x1565c 0x23dd 0x2305) libc++abi.dylib: terminate called throwing an exception
現在我不知道如果我1.我的設計類是正確的方式,使用「NSInteger」作爲屬性ID。或 2.將Id整數分配給字符串(編輯框)是錯誤的。
他們是NSStrings。並感謝您解釋錯誤的原因 – gdubs