2017-02-28 4 views
0

私は簡単な文字列チェックコードを持っています。これは、私のサーバーからNSStringにチェックされます.NSStringは私のxcodeにハードコードされています。0x00000001を返すiOSでの文字列の一致?

コードを確認してください

if([[array valueForKey:@"type"] isEqualToString:@"type"] ) { 
//Failed 
} 

入力値は、私はXcodeのコンソールでこれをやったこれら

[array valueForKey:@"type"] is a string from server 'type' 

ある

po [[array valueForKey:@"type"] isEqualToString:@"type"] 

私だ

0x00000001 
として出力

両方の文字列は同じですが、これは何ですか0x00000001 ??

+3

これは 'BOOL' returnig' 1'です。 @Naveenつまり、あなたの条件が真であることを意味します。 – iPeter

+0

しかし、それは内部に入っていません –

+2

'po'は「印刷オブジェクト」です。スカラ値の代わりに 'p'を使います。 –

答えて

0

[array valueForKey:@ "type"]値だけを出力しなければならない文字列の値をチェックしたり、配列のすべての項目の値を印刷したり念のため。

希望に役立ちます。

0

[array valueForKey:@"type"]は、文字列と異なる可能性が最も高い値を返します。アレイはNSDictionaryのNSIntegersで満たさであると仮定すると、キー「タイプ」ための整数、文字列「タイプ」に等しくなるようにつもりはありません。

0

私はあなたが16進値を持っていると思いました。すべての16進値は0xから始まります。値は1に等しい。 In文1はtrueに等しい。したがって、比較される文字列は等しいです。この0x0000000000000001値はコンパイラから来ており、コンパイラはそのように設計されています。ここで

-1

、[配列valueForKey: "タイプ" @]:方法..あなたが最初にいくつかのVARに保存

より良い配列が "valueForKey" を持っていないため、

配列は... NSDictionaryのでなければなりません比較を行います。