1

テキストファイルから読み込まれる UILabel があります。テキスト ファイルに何かが含まれている場合と、空である場合があります。そのため、UILabel が空白の場合もあれば、テキストが含まれている場合もあります。

UILabel が空白の場合、テキストが含まれている場合は別のことを行うという if ステートメントを書きたいと思います。

私が試してみました

if (self.label.text = NULL)

if (self.label.text = @"") 

しかし、正しく動作していません。

を使用するif (self.label.text = @"")と、if ステートメントが発生しますが、else ステートメントが機能しません。

これが私のコードです

NSString *stuff3 = @"/Stuff";
NSString *titleName = [familyDictionary objectForKey:@"identity"];

NSArray *paths3 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                      NSUserDomainMask, YES);
NSString *documentsDirectory3 = [paths3 objectAtIndex:0];
NSString *stuffPath3 = [documentsDirectory3 stringByAppendingPathComponent:stuff3];
NSString *fullPath3 = [stuffPath3 stringByAppendingPathComponent:titleName];

self.title = [NSString stringWithContentsOfFile:fullPath3  encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"full path 3 >>>%@",fullPath3);

NSString *stuff4 = @"/Stuff/Objects";
NSString *textName3 = [familyDictionary objectForKey:@"identity"];
NSArray *paths2 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                      NSUserDomainMask, YES);
NSString *documentsDirectory2 = [paths2 objectAtIndex:0];
NSString *stuffPath = [documentsDirectory2 stringByAppendingPathComponent:stuff4];
NSString *fullPath2 = [stuffPath stringByAppendingPathComponent:textName3];
self.wordlabel.text = [NSString stringWithContentsOfFile:fullPath2  encoding:NSUTF8StringEncoding error:NULL];

//Now load the image at fullPath and install it into our image view's image property.
 NSLog(@"full path 3 >>>%@",fullPath2);

if(self.wordlabel.text = @"") 
{
    [textView setTitle:[NSString stringWithContentsOfFile:fullPath3  encoding:NSUTF8StringEncoding error:NULL] forState:UIControlStateNormal] ;
    textView.titleLabel.adjustsFontSizeToFitWidth = TRUE;
}
else
{
    [textView setTitle:[NSString stringWithContentsOfFile:fullPath2  encoding:NSUTF8StringEncoding error:NULL] forState:UIControlStateNormal] ;
    textView.titleLabel.adjustsFontSizeToFitWidth = TRUE;
}
4

4 に答える 4

3

あなたはそれを間違っています、間違っています。

間違い 1:=は代入演算子、==は等価演算子です。if ステートメント内で代入演算子を使用している場合、少なくともそれに関するコンパイラの警告が表示されるはずです。

間違った例 2: 少しは正しかったとしても、文字列を比較する方法が間違っています。isEqualToString:他の回答と同様に、長さを使用または確認してください。

間違い 3: ロジックはおそらく、ラベルの内容を読み返すのではなく、ラベルに割り当てる前の文字列に基づいている必要があります。これは、よりクリーンな MVC 実装です。

于 2013-01-27T17:18:04.853 に答える
1

あなたがしているのは、文字列では機能しないポインターの比較です。これを使って

if ([self.wordlabel.text isEqualToString:@"thestring"])
于 2013-01-27T17:10:43.953 に答える
1

理想的には次を使用する必要があります。

if ([self.label.text length] > 0) 
于 2013-01-27T17:10:12.803 に答える
1

self.label.text = @"" ラベルのテキストを変更していると言うとき。=代入演算子です。==比較演算子です。

ただし、文字列を比較するには、比較メソッドを使用する必要があり[self.label.text isEqualToString:@""]ます。それ以外の場合は、ポインターを比較するだけです。

于 2013-01-27T17:17:44.077 に答える