![]() |
[iOS]Vorhandenes keyValue wird nicht erkannt
Ich habe einen "ImageOpenDialog" mit FMX auf dem iPhone programmiert. Jetzt sehe ich den Wald vor lauter Bäumen wohl nicht mehr: In meinem Delegate versuche ich die Informationen über das gewählte Image aus dem NSDictionary auszulesen. Ich erhalte aber immer eine Exception, obwohl der Schlüssel (und auch der Wert) definitiv existiert.
Delphi-Quellcode:
Ausgabe von ImageInfo.Description:
procedure ImgDelegate.imagePickerControllerDidFinish(ImagePickerController : UIImagePickerController; ImageInfo : NSDictionary);
var Image : UIImage; begin NSLog(NSStr(PChar('Selected picture!'))); NSLog(ImageInfo.Description); NSLog(ImageInfo.valueForKey(NSStr('@UIImagePickerControllerReferenceUrl'))); ViewController.dismissModalViewControllerAnimated(True); end;
Code:
Und das passiert wenn ich den Schlüssel abfrage:
2011-10-17 10:00:24.915 ImagePicker[1430:b303] {
UIImagePickerControllerMediaType = "public.image"; UIImagePickerControllerOriginalImage = "<UIImage: 0xa2841c0>"; UIImagePickerControllerReferenceURL = "assets-library://asset/asset.JPG?id=1000000001&ext=JPG"; }
Code:
Was mache ich falsch?
2011-10-17 10:00:25.851 ImagePicker[1430:b303] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFDictionary 0x513a1a0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key UIImagePickerControllerReferenceUrl.'
|
AW: [iOS]Vorhandenes keyValue wird nicht erkannt
Mal ne blöde Frage.
Was ist das fürn Projekt wo UIImage, NSDictionary, NSLog etc. zur Verfügung steht? |
AW: [iOS]Vorhandenes keyValue wird nicht erkannt
Na ganz normal FMI, mit XE2. Da kann man mit Pascal fast alles machen, was mit objc auch geht, solange es bereits geparsed wurde.
Und da FM nur die allernötigsten Operationen zur Verfügung stellt (d.h. nicht OS-Spezifisches) muss man es eben selber programmieren. |
AW: [iOS]Vorhandenes keyValue wird nicht erkannt
Hä? :o
Muss man da irgenwas umschalten? Ich bekomm hier kein NSLog hin. Würdest du mal ein kleines Beispiel anhängen, damit ich den Unterschied zu meinem Kram sehe? |
AW: [iOS]Vorhandenes keyValue wird nicht erkannt
Delphi-Quellcode:
{$IFDEF FPC}
{$mode objfpc}{$H+} {$modeswitch objectivec1} {$ENDIF} uses ... {$ifdef FPC}IPhoneAll, {$endif}... |
AW: [iOS]Vorhandenes keyValue wird nicht erkannt
Und mein eigentliches Problem konnte ich auch lösen. Tja, wenn man die gefühlten 1 Million Stringdatentypen von objc vermischt :wall:
So geht's:
Delphi-Quellcode:
Als nächstes kommt dann das Einlesen des Bildes über UIImagePickerControllerOriginalImage dran. Da freu ich mich schon besonders drauf, ohne Syntaxcheck und Codevervollständigung :stupid:
procedure ImgDelegate.imagePickerControllerDidFinish(ImagePickerController : UIImagePickerController; ImageInfo : NSDictionary);
var Image : UIImage; URL : NSUrl; begin NSLog(NSStr(PChar('Selected picture!'))); NSLog(ImageInfo.Description); NSLog(NSStr(PChar(Format('Count: %d', [ImageInfo.Count])))); URL := ImageInfo.valueForKey(UIImagePickerControllerReferenceURL); NSLog(URL.absoluteString); // "assets-library://asset/asset.JPG?id=1000000001&ext=JPG" ViewController.dismissModalViewControllerAnimated(True); end; |
AW: [iOS]Vorhandenes keyValue wird nicht erkannt
Pfff. Da kann man ja gleich mit XCode/obj-c programieren :roll:
|
AW: [iOS]Vorhandenes keyValue wird nicht erkannt
Ja, mit objc geht es besser, weil man da eine funktionierende IDE hat. Die Pascal-Unterstützung hat ja Apple aus XCode leider wieder entfernt.
|
AW: [iOS]Vorhandenes keyValue wird nicht erkannt
Uff, es geht jetzt alles. Hier mal ein Video meiner Spielerei (4,7 MB)
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz