-1

私は最近Xcodeで働いています。4つのテキストボックスを含むテーブルビューを使用しました。ボタンをクリックすると、ローカルファイルに保存していない場合、テキストボックスのいずれかにnull値があるかどうかを確認しています。

コードを以下に示します

NSString *FName, *LName, *Email, *Pwd;

FName=registerFirstName.text;
LName=registerLastName.text;
Email=registerEmail.text;
Pwd=registerPassword.text;

BOOL fileexists=[[NSFileManager defaultManager]fileExistsAtPath:storePath];
if(!fileexists)
    [storeManager createFileAtPath:storePath contents:nil attributes:nil];

if (FName !=NULL && LName != NULL && Email != NULL && Pwd != NULL && FName!=@"" && LName!=@"" && Email!=@"" && Pwd!=@"") {

    UIAlertView *missingInfo=[[UIAlertView alloc]initWithTitle:@"Missing Details" message:@"All Fields Are Necessary" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
    [missingInfo show];
  } else {
    NSString *fullUserInfo;
    fullUserInfo=[NSString stringWithFormat:@"First Name:\t%@\nLast Name:\t%@\nEmail ID:\t%@\nPassword:\t%@",FName,LName,Email,Pwd];
    [fullUserInfo writeToFile:storePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    UIAlertView *test=[[UIAlertView alloc]initWithTitle:@"InfoSaved" message:fullUserInfo delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
    [test show];
}

値を入力せずにシミュレーターで実行すると、フィールドが欠落しているというアラートを表示するように機能しました。しかし、テキストボックスに値を入力して消去した場合、[完了]をクリックして保存すると、null値が受け入れられ、発生したくない値が保存されます。私のコードのロジックに何か問題がありますか、それともデフォルトでxcodeにnullをチェックする他の関数がありますか?

4

5 に答える 5

3
if (textfieldName.text.length == 0) {
    NSLog(@"Text field empty");
} else {
    NSLog(@"Text field has value");
}
于 2012-12-19T07:35:47.827 に答える
2

NULLまたはnilと比較しても、期待した結果は得られません。文字列が空かどうかを確認するには、これを使用する必要があります。

if([Fname isEqualtoString = @""] &&.....)
{
   UIAlertView *missingInfo=[[UIAlertView alloc]initWithTitle:@"Missing Details" message:@"All Fields Are Necessary" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
    [missingInfo show];
}
else
{
//put your code here.
}

私は確信しています...これはあなたに大いに役立つでしょう...乾杯...

于 2012-12-19T07:26:05.760 に答える
1

MacOS アプリケーションの場合

if([_text.stringValue isNotEqualTo:@""]){
    NSLog(@"contains");
}
else{
    NSLog(@"empty");
}

編集:

iOS の場合:

NSString *textString=_text.text;

if(textString==NULL){
    NSLog(@"NULL");
}
else{
    NSLog(@"contains");
}
于 2012-12-19T07:17:32.617 に答える
0

これを行うことができます:

if ([myString isEqualtoString:@""])
{

}
else
{

}
于 2014-06-09T15:59:49.093 に答える
-2
if(Fname.length==0)
{
  NSLog(@"null");
}
于 2012-12-19T07:32:09.883 に答える