當我嘗試比較if
條件中的兩個NSString時,我遇到了這個奇怪而又簡單的問題。它適用於iPhone,但在iPad上無法正常工作。
我有四個UITextFields
和所有有delegate = self
。在textFieldShouldBeginEditing
我回來NO
並沒有作爲對方法的調用:NSString比較不適用於iPAD
if (textField==self.dx1Field)
{
[self.view endEditing:YES];
[self showDXViewForField:@"1"];
return NO;
}
else if (textField==self.dx2Field)
{
[self.view endEditing:YES];
[self showDXViewForField:@"2"];
return NO;
}
else if (textField==self.dx3Field)
{
[self.view endEditing:YES];
[self showDXViewForField:@"3"];
return NO;
}
else if (textField==self.dx4Field)
{
[self.view endEditing:YES];
[self showDXViewForField:@"4"];
return NO;
}
else return YES;
的方法showDXViewForField
打開了另一ViewController
與tableView
,顯示一些值從哪個用戶會選擇一個和它工作完全正常。
我已經做出了一個委託方法來獲取選定的DX值,並且在這裏我應用了檢查,如果任何四個文本字段都有該值,則不會添加並顯示它已被添加。
-(void)getSelectedDX:(NSString*)dxName forField:(NSString *)fieldNumber
{
if ([fieldNumber isEqualToString:@"1"]) {
if (self.dx2Field.text!=dxName&&self.dx3Field.text!=dxName&&self.dx4Field.text!=dxName) {
self.dx1Field.text = dxName;
}
else
{
[KSToastView ks_showToast:@"This DX is already added!" duration:2.0f];
}
}
else if ([fieldNumber isEqualToString:@"2"])
{
NSLog(@"%@==%@",self.dx1Field.text,dxName);
if (self.dx1Field.text!=dxName&&self.dx3Field.text!=dxName&&self.dx4Field.text!=dxName) {
self.dx2Field.text = dxName;
}
else
{
[KSToastView ks_showToast:@"This DX is already added!" duration:2.0f];
}
} //and same for 3 and 4
問題是,當我在iPAD上運行它時沒有工作。它爲文本視圖設置重複值,但在iPhone上運行相同的代碼。
由於David H的回答是正確的,似乎是你的問題,所以問你:你爲什麼要做'self.dx1Field.text!= dxName'和'[fieldNumber isEqualToString:@「2」]'?你似乎想要做同樣的測試,但以不同的方式使用。大衛H解釋了爲什麼,但這可能會給你提示你的代碼。 – Larme