0
在我的可腳本化應用程序中,其中一個屬性是已命名記錄類型,並且該記錄類型也已在sdef中聲明(名爲「custom record」) 。AppleScript:使用帶有記錄值的「who」不起作用
我能得到這樣的記錄:
get owner of anElement
--> {pool:"test", position:2}
我也能成功地測試了這個問題是這樣的:
set target to {pool:"test", position:2}
if owner of anElement = target then
-- found!
但我不能在使用它,其條款:
get allElements whose owner = target
--> {}
我也不能在測試中使用missing value
:
get allElements whose owner = missing value
--> error number -1700 from missing value to custom record
這是AppleScript的預期行爲,即它無法處理哪些子句中的記錄?
或者我做錯了什麼?到目前爲止,我還沒有實施任何強制處理程序或特殊記錄處理程序,因爲沒有任何信息表明我需要它們。
另外,請參閱我的相關問題:Cocoa Scripting: Returning "null" vs. "missing value"
啊,*只有具有對象說明符的類纔有意義。我會考慮將記錄轉換爲單獨的屬性,然後使其更容易處理。這只是記錄中的兩項。我認爲使用記錄類型會使它在字典中看起來更乾淨,但這並不是必須的。 –
事實上,OP的AS代碼應該可以工作,因爲他正在將查詢應用於一對多關係('TEST'的allElements),而不是一組記錄。無法對包含記錄的屬性進行相等性測試很可能是由於Cocoa Scripting有點低劣,並且未能正確執行'owner = {pool:「test」,position:2}'測試。至於'缺少值'失敗,OP應該在屬性的類型聲明中檢查他的SDEF包含''。 –
foo
@foo由於缺少「NSScriptObjectSpecifier」,其子句不適用於記錄類型。這是事實。 – vadian