怎么打印这个NSDictionary?

时间:2012-01-21 12:40:25

标签: objective-c ios textview nsdictionary nslog

当我打印一些NSDictionary对象时,NSLog给我这个。我知道,在这个NSDictionary中,很少有NSDictionary对象。我必须将其发送到UITextView,但这必须是一个没有{ExifAux}, {Exif}, {IPTC}, {TIFF}的列表。我怎么能这样做?

2012-01-21 13:33:23.818 foto-edytor[7838:17903] {
ColorModel = RGB;
DPIHeight = 240;
DPIWidth = 240;
Depth = 8;
PixelHeight = 900;
PixelWidth = 598;
"{ExifAux}" =     {
    ImageNumber = 5280;
    LensID = 159;
    LensInfo =         (
        35,
        35,
        "1.8",
        "1.8"
    );
    LensModel = "35.0 mm f/1.8";
    SerialNumber = 6055523;
};
"{Exif}" =     {
    ApertureValue = "3.356144";
    BodySerialNumber = 6055523;
    ColorSpace = 1;
    ComponentsConfiguration =         (
        1,
        2,
        3,
        0
    );
    Contrast = 0;
    CustomRendered = 0;
    DateTimeDigitized = "2011:11:12 11:54:18";
    DateTimeOriginal = "2011:11:12 11:54:18";
    DigitalZoomRatio = 1;
    ExifVersion =         (
        2,
        2,
        1
    );
    ExposureBiasValue = "-1.333333";
    ExposureMode = 0;
    ExposureProgram = 3;
    ExposureTime = "0.01666667";
    FNumber = "3.2";
    FileSource = 3;
    Flash = 0;
    FlashPixVersion =         (
        1,
        0
    );
    FocalLenIn35mmFilm = 52;
    FocalLength = 35;
    GainControl = 1;
    ISOSpeedRatings =         (
        400
    );
    LensModel = "35.0 mm f/1.8";
    LensSpecification =         (
        35,
        35,
        "1.8",
        "1.8"
    );
    LightSource = 0;
    MaxApertureValue = "1.6";
    MeteringMode = 2;
    PixelXDimension = 1442971648;
    PixelYDimension = "-2080178176";
    Saturation = 0;
    SceneCaptureType = 0;
    SceneType = 1;
    SensingMethod = 2;
    Sharpness = 0;
    ShutterSpeedValue = "5.906891";
    SubjectDistRange = 0;
    SubjectDistance = "1.41";
    SubsecTimeDigitized = 25;
    SubsecTimeOriginal = 25;
    UserComment = SZULC;
    WhiteBalance = 0;
};
"{IPTC}" =     {
    Byline = "SZULC TOMASZ";
    CopyrightNotice = "SZULC TOMASZ";
};
"{TIFF}" =     {
    Artist = "SZULC TOMASZ";
    Copyright = "SZULC TOMASZ";
    DateTime = "2012:01:20 17:50:58";
    Make = "NIKON CORPORATION";
    Model = "NIKON D300S";
    ResolutionUnit = 2;
    Software = "Ver.1.01";
    XResolution = 240;
    YResolution = 240;
    "_YCbCrPositioning" = 1;
};
}

1 个答案:

答案 0 :(得分:3)

这不是最美丽的方式,但我想这应该有效:

- (NSString *)stringOutputForDictionary:(NSDictionary *)inputDict {
   NSMutableString * outputString = [NSMutableString stringWithCapacity:256];

   NSArray * allKeys = [inputDict allKeys];

   for (NSString * key in allKeys) {
        if ([[inputDict objectForKey:key] isKindOfClass:[NSDictionary class]]) {
            [outputString appendString: [self stringOutputForDictionary: (NSDictionary *)inputDict]];
        }
        else {
        [outputString appendString: key];
        [outputString appendString: @": "];
        [outputString appendString: [[inputDict objectForKey: key] description]];
        }
    [outputString appendString: @"\n"];
    }

    return [NSString stringWithString: outputString];
}
相关问题