1

以下は、 で取得した JSON 出力ですNSDictionary

""値とnull値を共通に認識する方法を言える人はいますか?値が空かどうかを確認し、それをに割り当てようとしていUIlabelます。

User =     {
        address = "";
        birthday = "<null>";
        gender = 0;
        "mobile_number" = "<null>";
        name = ambili;
        "phone_number" = "";
        picture = "http://lb.fo********inds.com/images/users/profile_pics/no_picture.jpg";
    };
    status = OK;
}
4

3 に答える 3

0

次の方法で、文字列が別の文字列と等しいかどうかを確認できます。

if ([myString isEqualToString:@""] || [myString isEqualToString:@"<null>"]) {
    NSLog(@"empty or null");
}
于 2012-08-02T16:36:36.793 に答える
0

最後に、簡単な方法を見つけて、うまくいきました。皆さんと共有できてうれしいです。

 id phoneString = [Contentds valueForKeyPath:@"User.phone"];
    if (phoneString != [NSNull null])
    {
    label.text=[Contentds valueForKeyPath:@"User.phone"];
    }
于 2012-08-03T02:22:17.133 に答える
0

これを複数回使用しているため、クラス拡張の良い候補になります。クラス拡張を使用すると、次のようなカスタム関数を使用できます。

if ([birthday hasJSONData])
{
    // Do something
}

これを行うには、次のような新しい NSString クラス拡張を作成します。

ヘッダー ファイル (NSString+Kurian_Utils.h):

#import <Foundation/Foundation.h>

@interface NSString (Kurian_Utils)

- (BOOL)hasJSONData;

@end

実装ファイル (NSString+Kurian_Utils.m):

#import "NSString+Kurian_Utils.h"

@implementation NSString (Kurian_Utils)

// If the NSString is nil, calling this function will return NO because it is sent to nil.
 - (BOOL)hasJSONData
{
    if ([self length] == 0)
    {
        return NO;
    }

    if ([self localizedCaseInsensitiveCompare:@"<null>"] == NSOrderedSame)
    {
        return NO;
    }

    return YES;
}

@end

次に#import "NSString+Kurian_Utils.h"、使用するファイル内でhasJSONData.

于 2012-08-02T17:23:20.263 に答える