2016-05-06 10 views
0

Wenn der any-Typ für ein Befehlsergebnis in Sdef angegeben wird, scheint es, dass die NS-Typen wie NSNumber nicht einfach zurückgegeben werden können. Stattdessen muss eine NSAppleEventDescriptor zurückgegeben werden.Cocoa Scripting: Gibt einen Gleitkommawert (double) für "any" -Typ zurück

Allerdings ist NSAppleEventDescriptor ziemlich begrenzt in den Werten, die es verarbeiten kann. Es scheint keine Unterstützung für Gleitkommazahlen wie C double zu geben. Wie kann ich doppelte Werte für den Typ any zurückgeben?

Antwort

0

10.11 hat eine direkte Art und Weise, eine doubleValue Eigenschaft, für Systemversionen vor 10.11 Sie den Deskriptor mit dem Verfahren coerceToDescriptorType zu einem dieser Typen zwingen kann

typeIEEE32BitFloatingPoint = 'sing', 
typeIEEE64BitFloatingPoint = 'doub', 
type128BitFloatingPoint = 'ldvl', 

Zum Beispiel Code AppleScriptToolKit

+0

sehen, dass geholfen. Ich konnte den Wert mit '[[NSAppleEventDescriptor Alloc] initWithDescriptorType erstellen: 'doub' Bytes: & doubleVar Länge: sizeof (double)]' –

+0

'NSAppleEventDescriptor' ist eigentlich nicht so * begrenzt * wie es scheint ;-) Alle unterstützte Typen sind im [Apple Event Manager] aufgelistet (https://developer.apple.com/library/mac/documentation/Carbon/Reference/Apple_Event_Manager) – vadian

+0

Yeah, lesen und verstehen die AE Mgr Docs - das ist eine weitere Woche Aufgabe, obwohl :) –

Verwandte Themen