ist es möglich, auf Nutzeraktionen in einem Programm zu reagieren?

Kümmelkorn

Aktives Mitglied
Thread Starter
Dabei seit
06.10.2008
Beiträge
1.941
Reaktionspunkte
127
ist es möglich, auf Nutzeraktionen in iPhoto zu reagieren?

Hallo,

kurz gesagt wäre meine Frage: Lohnt es sich für mich, Objective C zu lernen oder nicht?

Und nun etwas länger ausgeholt zu meinem Problem:
Am Ende möchte ich ein iPhoto Plugin haben, dass mir den Dateinamen des Bildes mit dem Titel des Bildes in iPhoto synchronisiert. Da ich gerade dabei bin, die Schönheit von Applescript zu entdecken, würde ich das ganze einfach sofort in Applescript entwickeln, wenn da nicht ein kleiner Haken wäre: Applescript bietet mir (jedenfalls soweit ich weiß) keine Möglichkeit, darauf zu reagieren, dass der Nutzer Eigenschaften eines Bildes (Titel, Schlagwörter...) ändert. iPhoto bietet dort auch keine Lösung, schließlich kann man der Aktion "Änderung eine Titels" kein Script zuweisen.

Letzte Hoffnung wäre also Objective C (ggf. mit iPhoto SDK o.ä.). Da ich die ganze Aktion als Hobby betreibe, spielt Lernaufwand oder Entwicklungszeit keine Rolle. Wichtig ist nur, dass es Spaß macht und ich vorran komme...

Aber bevor ich mich nun in die Tiefen von Objective C stürtze, wollte ich die Pros unter euch fragen: Ist es überhaupt möglich, etwas derartiges zu realisieren? Kann ich die Nutzeraktion "Ändern eines Bildtitels" überhaupt mit einer Objective C Methode verknüpfen? Oder ist es schlicht nur für Apple möglich, dies zu programmieren!?

Ich bin für jede Antwort dankbar :)

Forge
 
Zuletzt bearbeitet:
Antwort 1:
Es lohnt sich immer, Objective-C zu lernen.

Antwort 2:
Das iPhoto SDK ist ein reines Export SDK. Es sieht diese Funktionalität nicht vor.

Antwort 3:
Sie haben Menschen auf den Mond, und lebendig wieder zurückgebracht. Dein Vorhaben wird deutlich leichter zu realisieren sein

Antwort 4:
Du solltest Objective-C lernen, weil Du gerne programmieren möchtest. Ob Du dieses Problem mittelfristig lösen kannst ist eine andere Frage

Such Dir eine aus ;)

Alex
 
Erst einmal danke für das Sortieren. :) Ich übernehme das mal.

Antwort 1:
Es lohnt sich immer, Objective-C zu lernen.
Ja, schon zur geistigen Erweiterung.

Antwort 2:
Das iPhoto SDK ist ein reines Export SDK. Es sieht diese Funktionalität nicht vor.
Ist das noch so? Ich meine gelesen zu haben, dass sich das geändert hat.

Antwort 3:
Sie haben Menschen auf den Mond, und lebendig wieder zurückgebracht. Dein Vorhaben wird deutlich leichter zu realisieren sein
Das waren in Wahrheit nur gefälschte Bilder. Womit wir wieder bei iPhoto wären.

Antwort 4:
Du solltest Objective-C lernen, weil Du gerne programmieren möchtest. Ob Du dieses Problem mittelfristig lösen kannst ist eine andere Frage
Ich frage mich vor allem, wie es wohl iPhoto findet, wenn man die Dateinamen ändert. Möglicherweise stecken die ja in einer DB drin.
 
Als Batch, also ausserhalb die Daten so zu ändern, dass Titel und Dateiname gleich sind ist kein grosses Problem.

Aber in iPhoto selbst... das könnte schwierig werden.

Alex
 
Ich frage mich vor allem, wie es wohl iPhoto findet, wenn man die Dateinamen ändert. Möglicherweise stecken die ja in einer DB drin.

Mist, das hatte ich noch gar nicht bedacht... das ist allerdings ein Problem, ich habe zwar die Datei mit den Informationen zu den Bildern ausfindig gemacht, aber auf wundersame Weise möchte iPhoto dort keine Änderungen akzeptieren und macht alle meine Änderungen bezüglich Dateipfade nach einem neustart wieder rückgängig!

Wenn ich Pech habe, liegt das Geheimnis im Programmcode selbst (dann wäre die richtige Antwort auf meine Ursprungsfrage "nein, auch ObjC bietet da keine Lösung" gewesen :p ), aber ich frage mich, was diese .iPhoto und .data Dateien in der Library zu suchen haben? Eigentlich ist doch mit der Plist und den Bildern alles gegeben!? Seltsam. Apple wird ja wohl kaum Daten in den Programmcode schreiben (können?), also muss das Geheimnis genau in diesen mysteriösen Dateien zu finden sein...

Gibt es eine Möglichkeit, Dateien vom Typ "NeXT/Apple typedstream data, little endian, version 4, system 1000" zu öffnen? Was ist das für ein komischer Dateityp?
 
Wenn ich Pech habe, liegt das Geheimnis im Programmcode selbst (dann wäre die richtige Antwort auf meine Ursprungsfrage "nein, auch ObjC bietet da keine Lösung" gewesen
Warum? Method Swizzling, Code Injection, alles Dinge, die man mal probieren kann. Gut, wenn man so ein paar Jahre Erfahrung hat.

Es ist nur die Frage, wie viel Aufwand Du treiben willst.

Gibt es eine Möglichkeit, Dateien vom Typ "NeXT/Apple typedstream data, little endian, version 4, system 1000" zu öffnen? Was ist das für ein komischer Dateityp?

Natürlich gibt es eine Möglichkeit, iPhoto kanns ja auch. Ob Du allerdings verstehst, was drin steht ist eine andere Frage.

Lern Cocoa und finde es heraus :D

Alex
 
Mist, das hatte ich noch gar nicht bedacht... das ist allerdings ein Problem, ich habe zwar die Datei mit den Informationen zu den Bildern ausfindig gemacht, aber auf wundersame Weise möchte iPhoto dort keine Änderungen akzeptieren und macht alle meine Änderungen bezüglich Dateipfade nach einem neustart wieder rückgängig!

Wenn ich Pech habe, liegt das Geheimnis im Programmcode selbst (dann wäre die richtige Antwort auf meine Ursprungsfrage "nein, auch ObjC bietet da keine Lösung" gewesen :p ), aber ich frage mich, was diese .iPhoto und .data Dateien in der Library zu suchen haben? Eigentlich ist doch mit der Plist und den Bildern alles gegeben!?
Bei iTunes existiert die XML auch nur zum Export, die Daten werden in einer eigenen Datenbank gepflegt. Insofern …

Seltsam. Apple wird ja wohl kaum Daten in den Programmcode schreiben (können?),
?

also muss das Geheimnis genau in diesen mysteriösen Dateien zu finden sein...

Ich weiß ja nicht, was du genau willst. Aber wieso legst du dir nicht einfach ein paar Links an?
 
Bei iTunes existiert die XML auch nur zum Export, die Daten werden in einer eigenen Datenbank gepflegt. Insofern …
Wie doof... und das soll ein Anfänger verstehen? Daten doppelt speichern? Klingt mir irgendwie nach schlechtem Programmcode.. naja, Apple wird schon wissen, was es tut...

Seltsam. Apple wird ja wohl kaum Daten in den Programmcode schreiben (können?),
?
Damit meinte ich, dass ja (wenn ich da nicht einfach nur zu unerfahren bin) im Programmcode von iPhoto selbst keine Daten liegen können, da dieser kompiliert ist und es außerdem unpraktisch und unlogisch wäre - War nur so ein Gedanke, weil die XML Datei wie von Zauberhand überschrieben wurde, ergo mussten die Daten nun mal irgendwo unabhängig von dieser Datei liegen. ;)

Ich weiß ja nicht, was du genau willst. Aber wieso legst du dir nicht einfach ein paar Links an?
iPhoto verwaltet bekanntermaßen Titel statt Dateinamen. Das dies etliche Nutzer nervt, brauche ich wohl kaum zu erwähnen, denn um das herauszufinden, braucht man nur mit offenen Augen durch Macforen zu stöbern. Wenn man z.B. Dateien aus iPhoto in Mail zieht, wird der Titel der Datei schlicht ignoriert und der originale Dateiname benutzt. Ich weiß selbst, dass dazu Alternativen existieren (Email Button, Exportfunktion ...), aber Benutzerfreundlichkeit funktioniert anders. Des weiteren müsste man, sofern das "erste Ziel" mit den Dateinamen funktioniert, auch den oft kritisierten Umstand beheben können, dass Stichwörter der iPhoto Bibliothek nicht in die ITPC Daten geschrieben werden, also iPhoto spezifisch sind. (Langsam kommt mir der Gedanke, dass das wesentlich einfacher zu handhaben sein könnte als das mit den Dateinamen... mal schauen).

Lern Cocoa und finde es heraus
Na dann... "Cocoa, ich komme" ;)
 
Wie doof... und das soll ein Anfänger verstehen?
Nö, das ist (leider) sehr selten eine Anforderung an Programmcode ;)

Na dann... "Cocoa, ich komme" ;)
Wie gesagt, am besten verabschiedest Du Dich aber erstmal von der Idee, dieses Problem kurzfristig lösen zu können.

Lern programmieren weil Du das möchtest. Sonst kommt zu schnell frust auf.

Klar hilft ein konkretes Projekt immer, aber dieses ist vielleicht nicht ganz für den Anfang geeignet.

Alex
 
Wie doof... und das soll ein Anfänger verstehen? Daten doppelt speichern? Klingt mir irgendwie nach schlechtem Programmcode.. naja, Apple wird schon wissen, was es tut...
Ein Anfänger soll das sicher nicht verstehen. Das ist ja kein Lehrprogramm.

Aber die Auswirkungen kann er erleben:
Zum einen besteht die Anforderung nach einem bequemen, schnellen, einfachen pp. Zugriff auf die eigene Datenbank. Das bedingt ein eigenes Format.

Zum anderen besteht die Anforderung, die Daten extern verfügbar zu machen. Das geht nur mit einem standardisierten Format.

Man kann beides mixen, um dann beide Nachteile zu vereinigen. ;-) Siehe es einfach wie einen laufenden Export. Und Exporte sind ja nun nichts Ungewöhnliches.

Der Nachteil, Redundanz, ist hier nicht dramatisch: Speicherplatz auf der Festplatte dürfte dadurch kaum verbraten werden. Und die Gefahr von Inkonsistenz ist hier gering, da beide Formate ja völlig unabhängig voneinander genutzt werden.
 
Zurück
Oben Unten