I meant to post to the AS list but I suppose it applies to both, I found it 
shortly after I posted - allKeys() = note the brackets! 

Thanks 
Dave


> On 15 Mar 2016, at 15:47, Dave <d...@looktowindward.com> wrote:
> 
> Hi Again,
> 
> How do I pass an NSDictionary that is returned from an ApplesScript handler 
> to another handler?
> 
> I get an error in setWordStandardDocumentDictionary running this code:
> 
>       set myDocumentID to (theStandardDocumentDictionary's 
> objectForKey:"kDocumentID")
>       set myStandardPropertyArray to (theStandardDocumentDictionary's 
> allKeys)                        —Error Here
> 
> error "Can’t get allKeys of «class ocid» id «data 
> optr0000000070A1240080630000»." number -1728 from allKeys of «class ocid» id 
> «data optr0000000070A1240080630000»
> 
> statement. Yet the statement before returns what I was expecting?
> 
> Thanks for the Help.
> 
> All the Best
> Dave
> 
> -------------
> 
> on getWordStandardDocumentDictionaryWithDocumentID:(theDocumentID as string)
>       --say "getWordStandardDocumentDictionaryWithDocumentID:" --& 
> theDocumentID
>       
>       set myDocument to my getWordDocumentWithDocumentID:(theDocumentID)
>       
>       tell application id "com.microsoft.Word"
>               set myTranslationDictionary to 
> pWordStandardDocumentPropertiesKeyTranslationDictionary of me
>               
>               set myStandardPropertiesDictionary to current application's 
> NSMutableDictionary's alloc()'s init()
>               set myStandardPropertyArray to (document properties of 
> myDocument)
>               
>               repeat with myStandardProperty in myStandardPropertyArray
>                       set myPropertyName to the name of myStandardProperty
>                       set myPropertyValue to the value of myStandardProperty
>                       if myPropertyValue = missing value then
>                               set myPropertyValue to ""
>                       end if
>                       
>                       set myTranslatedPropertyName to 
> (myTranslationDictionary's objectForKey:myPropertyName) as string
>                       if myTranslatedPropertyName = missing value then next
>                       
>                       (myStandardPropertiesDictionary's 
> setObject:myPropertyValue forKey:myTranslatedPropertyName)
>               end repeat
>               
>               set kDocumentID of myStandardPropertiesDictionary to 
> theDocumentID
>       end tell
>       
>       return myStandardPropertiesDictionary 
> end getWordStandardDocumentDictionaryWithDocumentID:
> 
> 
> on setWordStandardDocumentDictionary:(theStandardDocumentDictionary)
>       --say "setWordStandardDocumentDictionary:"
>       
>       set myDocumentID to (theStandardDocumentDictionary's 
> objectForKey:"kDocumentID")
>       
>       log "======" & myDocumentID
>       set myStandardPropertyArray to (theStandardDocumentDictionary's allKeys)
>       
>       set myDocument to my getWordDocumentWithDocumentID:(myDocumentID)
>       
>       tell application id "com.microsoft.Word"
>               set myTranslationDictionary to 
> pWordStandardDocumentPropertiesKeyTranslationDictionary of me
>               
>               
>               repeat with myPropertyName in myStandardPropertyArray
>                       set myTranslatedPropertyName to 
> (myTranslationDictionary's objectForKey:myPropertyName) as string
>                       if myTranslatedPropertyName = missing value then next
>                       
>                       set myPropertyValue to (theStandardDocumentDictionary's 
> objectForKey:myPropertyName)
>                       if myPropertyValue = missing value then
>                               set myPropertyValue to ""
>                       end if
>                       
>                       set the value of (custom document properties of 
> myDocument whose name is myTranslatedPropertyName) to thePropertyValue
>               end repeat
>               
>               set kDocumentID of myStandardPropertiesDictionary to 
> theDocumentID
>       end tell
> end setWordStandardDocumentDictionary:
> 
> on run
>       
>       tell application id "com.microsoft.Word"
>               activate
>       end tell
>       
>       get my setupKeyTranslationDictionary()
>       
>       set myDocumentID to my getWordActiveDocumentID()
>       set myStandardPropertiesDictionary to my 
> getWordStandardDocumentDictionaryWithDocumentID:(myDocumentID)
>       (myStandardPropertiesDictionary's setObject:"Hello Cruel World!" 
> forKey:"kDocumentKeywords")
>       
>       get my 
> setWordStandardDocumentDictionary:(myStandardPropertiesDictionary)
>       
>       return myStandardPropertiesDictionary
> end run
> 


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to