2

NSLog give me this when i print some NSDictionary object. I see, that in this NSDictionary are few NSDictionary objects. i must to send this to UITextView, but this must be one list without {ExifAux}, {Exif}, {IPTC}, {TIFF}. how can i do this?

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;
};
}
Tomasz Szulc
  • 4,217
  • 4
  • 43
  • 79
  • how did you manage to get this information from a image. whatever i have tried ByLine in IPTC dictionary comes empty. – modusCell Nov 11 '12 at 09:40

1 Answers1

3

It's not the most beautiful way, but I guess this should work:

- (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];
}
Arthulia
  • 190
  • 13
Jodocus
  • 151
  • 6