Forenindex » Programmierung/Entwicklung » AppleScript » Fehler beim Umwandeln des Klassennamens in einen String

Fehler beim Umwandeln des Klassennamens in einen String

dasistideal
Beiträge gesamt: 22

28. Mai 2017, 15:19
Bewertung:

gelesen: 12006

Beitrag als Lesezeichen
Hallo,
mithilfe von AppleScriptObjC möchte ich den Parameter einer Funktion auf seine Klasse hin überprüfen und gegebenenfalls entsprechende Maßnahmen durchführen.
Da der Rückgabewert/der Klassenname aber offenbar nicht als String zurückgegeben wird, schlägt folgender Test fehl:
Code
set windowClass to class of theWindow 
if (windowClass is equal to "NSWindow") then
display dialog "continue"
end if


Wenn ich aber versuche, den Rückgabewert in einen String zu konvertieren, in etwa so:
Code
set windowClass to (class of theWindow) as string 
if (windowClass is equal to "NSWindow") then
display dialog "continue"
end if

Dann erhalte ich folgende Fehlermeldung:
Zitat 2017-05-28 15:13:06.457513+0200 application[23383:1824803] *** -[AppDelegate applicationWillFinishLaunching:]: Can’t make «class ocid» id «data optr00000000D0E1B8EDFF7F0000» into type string. (error -1700)


Ich kann den Fehler nicht finden, da ja durch die Klammern zunächst der Klassenname abgefragt wird und dieser dann in einen String umgewandelt werden soll, aber nicht das NSWindow-Objekt.

Habe ich etwas übersehen?

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

28. Mai 2017, 16:05
Bewertung:

gelesen: 11991

Beitrag als Lesezeichen
Hallo dasistideal,

aus Zeitgründen habe ich mich noch nicht mit AppleScriptObjC befassen können.

Aber ich weiss, wo Du eine Antwort auf Deine Frage finden wirst: https://lists.apple.com/...fo/applescript-users

Do you speak English? Sobald Du dort angemeldet bist, kannst Du Dein Anliegen posten. Und dann wird ein Mitglied der AppleScript-Users List (allen voran der Australier Shane Stanley) die Lösung durchgeben.

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

dasistideal
Beiträge gesamt: 22

28. Mai 2017, 16:20
Bewertung:

gelesen: 11988

Beitrag als Lesezeichen
Wie kann ich denn dort jetzt etwas posten? :S

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

28. Mai 2017, 16:48
Bewertung:

gelesen: 11983

Beitrag als Lesezeichen
Hallo dasistideal,

Du musst Dich zuerst anmelden. Das nennen sie dort "to subscribe".

In der Mitte der Seite steht der Untertitel Subscribing to AppleScript-Users. Der Text darunter beginnt mit Subscribe to AppleScript-Users by filling out the following form.

Dann folgen die Texteingabefelder für Deine E-Mail-Adresse, einen optionellen Benutzernamen und ein Passwort.

Nach der Anmeldung wirst Du eine Mitteilung bekommen, welche Du rückbestätigen musst.

Sobald Du als Mitglied registriert bist, kannst Du Dein Anliegen per E-Mail posten.

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

dasistideal
Beiträge gesamt: 22

28. Mai 2017, 17:10
Bewertung:

gelesen: 11980

Beitrag als Lesezeichen
Danke, das bin ich ja alles schon, also angemeldet und so :P

An welche E-Mail Adresse muss ich das denn jetzt schicken? Hab leider noch nie was mit Mailing Listen gemacht :'D

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

28. Mai 2017, 17:34
Bewertung:

gelesen: 11968

Beitrag als Lesezeichen
Hallo dasistideal,

die E-Mail-Adresse der AppleScript-Users List ist: http://applescript-users@lists.apple.com

Die Mitteilung muss natürlich in English getippt sein.

Beim Beantworten einer Antwort darauf achten, dass diese an die Users-List gesandt wird.
Und nicht an das Mitglied, welches die Antwort gepostet hat.

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

28. Mai 2017, 19:05
Bewertung:

gelesen: 11959

Beitrag als Lesezeichen
Hi there :-)

Deine E-Mail-Message ist erfolgreich von der Users-List an die User gesandt worden.

Nun hoffe ich sehr, dass einer der Cracks des Rätsels Lösung posten wird.

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

dasistideal
Beiträge gesamt: 22

28. Mai 2017, 19:15
Bewertung:

gelesen: 11955

Beitrag als Lesezeichen
Hallo,
vielen Dank für Ihre Auskunft und Hilfe.
:)

Mal schauen, ob 'was bei rumkommt ...

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

29. Mai 2017, 08:58
Bewertung:

gelesen: 11920

Beitrag als Lesezeichen
Hallo dasistideal,

bitte sehr. Und schon ist was rumgekommen. :-)

Löst die Antwort von Takaaki Naganoya Dein Problem?
Falls nicht: nachhaken.

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

dasistideal
Beiträge gesamt: 22

29. Mai 2017, 20:29
Bewertung:

gelesen: 11886

Beitrag als Lesezeichen
Hallo,
leider nicht, denn ich sehe die Antwort nicht Mal (warum weiß ich auch nicht). Eine E-Mail habe ich aber auch nicht bekommen.

So sieht der Post über die URL bei Mir aus: https://s4.postimg.org/...5-29_at_20.25.44.png

(Dieser Beitrag wurde von dasistideal am 29. Mai 2017, 20:29 geändert)

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

29. Mai 2017, 21:17
Bewertung:

gelesen: 11870

Beitrag als Lesezeichen
Hallo dasistideal,

also ... das ist eigenartig. Du hattest Deine Anfrage an http://applescript-users@lists.apple.com gesandt.

Jene Mitteilung habe ich bekommen. Ebenfalls Tausende andere. Darunter der Takaaki Naganoya.

Dieser hat folgende Antwort gepostet:

Zitat To get class name from Cocoa objects require specific method. But the answer is not we expected (v1).
So, class name comparison is the better way (v2).

—Get Class name string from Cocoa Objects v1
http://piyocast.com/as/archives/3849

—Get Class name string from Cocoa Objects v2
http://piyocast.com/as/archives/3984

Your failure was keyword collision with Cocoa method and AppleScript registered keywords.

set windowClass to (theWindow’s |class|() ) as string

Will return the class name from NSWindow. But the result may not be as you expected (“NSWindow”).

--
Takaaki Naganoya
http://maro@piyocast.com
http://piyocast.com/as/

Weshalb Du keine E-Mail-Mitteilung erhalten hast, ist ein Rätsel.
Hast Du bei der Zeile "Would you like to receive list mail batched in a daily digest?"
die Default-Einstelliung der Radio-Buttons von "no" auf "yes" geändert?
Dann werden alle Mitteilungen eines Tages gebündelt in eine Message bei Dir eintreffen.
Vielleicht startest Du eine Anfrage an den Admin.

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

29. Mai 2017, 21:31
Bewertung:

gelesen: 11868

Beitrag als Lesezeichen
Hallo dasistideal,

eine andere Möglichkeit: Die Mitteilung ist in Deinem SPAM-Ordner gelandet ...

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

dasistideal
Beiträge gesamt: 22

29. Mai 2017, 21:47
Bewertung:

gelesen: 11866

Beitrag als Lesezeichen
Hallo,
dort habe ich auch schon nachgesehen.
Habe zwischenzeitlich die Einstellungen überprüft und die Mitteilungen für neue Posts aktiviert.

Aber warum sehe ich denn den Beitrag über die URL nicht?

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

29. Mai 2017, 22:16
Bewertung:

gelesen: 11856

Beitrag als Lesezeichen
Hallo dasistideal,

Antwort auf: Aber warum sehe ich denn den Beitrag über die URL nicht?

Eine Mailing-Liste ist nun mal so eingerichtet, dass die Mitglieder entweder einzelne E-Mails bekommen.
Oder eine tägliche Sendung (wenn sie daily digest gewünscht haben):

Deinen Beitrag (und die Antwort von Takaaki Naganoya) kannst Du im Archiv finden: http://lists.apple.com/...es/applescript-users

Auf jener Seite auf den Link 2017 klicken. Dann auf May. Und dann findest Du Deinen Thread. Klick darauf und dann nochmals auf einen Link darin und die Mitteilung sollte angezeigt werden
Nicht gefunden? Dann klick mal auf diesen: https://lists.apple.com/...17/May/msg00115.html

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

dasistideal
Beiträge gesamt: 22

29. Mai 2017, 22:25
Bewertung:

gelesen: 11837

Beitrag als Lesezeichen
Hallo,
ich sehe nach wie vor nur die Seite ohne die Nachricht (genauso wie oben als Bild eingefügt)

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

29. Mai 2017, 23:11
Bewertung:

gelesen: 12377

Beitrag als Lesezeichen
Mein lieber dasistideal ...,

welche Seite siehst Du Dir an?

Hast Du den Weg ins Archiv (wie oben beschrieben) nicht gefunden?

Was siehst Du mit diesem Link: https://lists.apple.com/...17/May/msg00115.html ?

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

dasistideal
Beiträge gesamt: 22

31. Mai 2017, 18:09
Bewertung:

gelesen: 12324

Beitrag als Lesezeichen
Hallo Hans,
ja den Link habe ich auch gefunden und dort sehe ich mein Posting, aber keine weitere Antwort. Lediglich bei "References", aber sobald ich darauf klicke sehe ich die Nachricht nach wie vor nicht.

Doch da Du die Nachricht ja oben eingebettet hast (das habe ich leider erst später gesehen hast), habe ich eine Lösung finden können und würde dies dem Poster auch gerne mitteilen ... soll ich jetzt einfach eine neue E-Mail mit dem Betreff "Re: ..." an die Mailing-List Adresse senden? Der Post soll ja auch im richtigen Thema verlinkt werden.

Vielen Dank für Deine großartige Hilfe übrigens :)

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

31. Mai 2017, 19:30
Bewertung:

gelesen: 12315

Beitrag als Lesezeichen
Hallo dasistideal,

bitte sehr.

Ja, das ASUsers-Archiv hat so seine Macken.

Gut, dass Du eine Lösung gefunden hast. Und diese solltest Du unbedingt dem guten Takaaki Naganoya durchgeben.

Am besten so: Zuerst eine Mitteilung an die Mailing-Liste. Und anschliessend eine Nachricht direkt an die Privatadresse von Takaaki. In welcher Du schilderst, dass Du seine Antwort nur über einen Umweg bekommen hast und Dich deshalb mit Verspätung meldest.

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

dasistideal
Beiträge gesamt: 22

1. Jun 2017, 08:23
Bewertung:

gelesen: 12284

Beitrag als Lesezeichen
Hallo Hans,
also zunächst an applescript-users@lists.apple.com und dann an seine Privatadresse? Wo kriege ich die denn her?

Fehler beim Umwandeln des Klassennamens in einen String

Hans Haesler
  
Beiträge gesamt: 5826

1. Jun 2017, 09:52
Bewertung:

gelesen: 12271

Beitrag als Lesezeichen
Hallo dasistideal,

ich glaubte, dass sich die Privatadresse von Takaaki Naganoya am Ende seiner Antwort befindet, welche ich oben (im Beitrag #11) gepostet hatte.

Aber dort sind nur zwei Web-Adressen. Doch nicht verzagen: Auf den zweiten Link klicken. Wenn die Seite offen ist, den Link "CONTACT" betätigen und die E-Mail-Adresse ist gross sichtbar.

Gruss, Hans

Fehler beim Umwandeln des Klassennamens in einen String

dasistideal
Beiträge gesamt: 22

2. Jun 2017, 08:26
Bewertung:

gelesen: 12211

Beitrag als Lesezeichen
Hallo Hans,
dankeschön, ich habe den Antwort-Autoren nun kontaktiert und ihm kurz die Situation geschildert.

Danke auch für Deine Hilfe! :)