2011-11-27 7 views
6

だから私は次のコードを持っている:iOSのオブジェクトがnullであるかどうかを確認することはできません

- (IBAction)doSomething 
{ 
if (txtName.text != (id)[NSNull null] || txtName.text.length != 0) { 
    NSString *msg = [[NSString alloc] initWithFormat:@"Hello, %@", txtName.text]; 
    [lblMessage setText:msg]; 
} 

} 

txtNameUITextFieldで、私が間違ってやっているの?私は、ユーザーがボックスに何かを入力したときにのみテキストを表示しようとしています。

よろしく、

答えて

0

解決策が見つかりました! ![txtName.text isEqualToString:@""]

- (IBAction)doSomething 
{ 
if (![txtName.text isEqualToString:@""]){ 
    NSString *msg = [[NSString alloc] initWithFormat:@"Hello, %@", txtName.text]; 
    [lblMessage setText:msg];  

} 

} 
6

if (txtName.text != (id)[NSNull null] || txtName.text.length != 0) {

(あなただけのnullをnilと比較することができます "というテキストがnullまたは長さが0でない場合は、"

txtName.textnilことはありませんようにそれを読みますチェックしてください) - テキストボックスは常にのテキストを保持します(空であっても)。したがって、最初の論理和は常に真であり、ボックスは常に現れます。テキストフィールドに

+2

とのNSStringのインスタンスは、のシングルトンインスタンスに等しいことはありませんNSNull。 –

+0

これを実現する方法はありますか...または? http://screencast.com/t/XJ9AZm7Cs – Uffo

11

テキストは、それが(ゼロと同じではない)NSNullクラスのインスタンスに等しいことはありません、NSStringインスタンスまたはnil値です。条件がtrueに評価され、メッセージが表示されるように第一の比較は、常に全体の真実です。私は通常2つの比較して第一のオプションを使用していますが

あなただけ

if (txtName.text.length != 0) 

を持ってとにかく0を返しますnilに長さのメッセージを送信するよう、あなたの場合は条件に

if (txtName.text != nil && txtName.text.length != 0) 

を修正したりでき

+0

まだ機能していません。ここでhttp://screencast.com/t/XJ9AZm7Cs見て、任意のソリューション? – Uffo

+0

は、あなたが変更をコンパイルしましたか? – Eiko

+0

まあ、はい、私はコンパイル:(まだ働いていなかった... – Uffo

3

私はあなたのような同じ問題を抱えています。この問題はNSNullクラスに関係します。そして、ここでオブジェクトがnullであることを確認するコードです。

NSString* text; 
    if([text isKindOfClass:[NSNull class]]) 
    { 
      //do something here if that object is null 
    } 

希望すると、これが役に立ちます。

+0

'' [nsnullをヌル]であるべき – runmad

1
#define SAFESTRING(str) ISVALIDSTRING(str) ? str : @"" 
#define ISVALIDSTRING(str) (str != nil && [str isKindOfClass:[NSNull class]] == NO) 
#define VALIDSTRING_PREDICATE [NSPredicate predicateWithBlock:^(id evaluatedObject, NSDictionary *bindings) {return (BOOL)ISVALIDSTRING(evaluatedObject);}] 
SAFESTRING(PASS_OBJECT OR STRING); 
0

これを試してください:

このmyobjの値はゼロまたは<ヌル>

if([myObj isEqual:[NSNull class]] || !myObj) { 

// your code 

} 
関連する問題