お?いけるくさい?

iPhoneアプリエンジニアのたまごです。いっちょまえエンジニア目指してちいさな発見や学んだことを覚え書きしていきます!Objective-C/iOS/開発

NSStringの空文字判定(メモ)

今サーバと連携してて

サーバから返ってくるデータが<null>となってるときに

 NSString* strを取り出して判定をしたいとして、

 

①: if ( str != nil){

→判定が効かなくて<null>ってまるまる表示された。

 

②: if ( ![str isEqualtoString:@""]{

→落ちた

 

③: if ( str != NULL){

→①と同じ結果

 

④:  if ( ![str isEqualtoString:<null>]){

→落ちた

 

どないしたらええんや、って思ってたら、

「こんなのはいかが?」って渡されたサイトにあったものを参考に無事解決。

 

⑤: if ( ![str isEqual:[NSNull null]] ){

→無事思った挙動に!

 

/***NSNull***/

The NSNull class defines a singleton object used to represent null values in collection objects (which don’t allow nil values).

NSDictionaryやNSArrayなどにはnilが格納できないため、NSNullのインスタンス[NSNull null]を用いて無効値が表現されるようです。

[NSNull null]とnilは別物なので、nilとの比較だけ行っているとエラーが出ます。

参考:http://d.hatena.ne.jp/shoby/20110319/1300567422

 

今回全部この判定用いたほうがいいってことやん...

余裕があったら見直そう。。!