2012-11-05 69 views
0

所以我編寫了這個代碼到目前爲止,它工作得很好,唯一的問題是,調用代碼兩次錯誤«腳本»的結果不理解Remi消息。 (-1708)觸發處理程序兩次在Applescript中導致錯誤

這裏指的是什麼,以及如何在處理程序觸發後取消設置處理程序?

驗證碼:

my Remi() 

on Remi() 
    set cD to (current date) 

    tell application "Reminders" 
     --set output to name of reminders 
     if (count of (reminders whose completed is false)) > 0 then 
      set output to "" 
      set todoList to name of reminders whose completed is false 
      repeat with itemNum from 1 to ((count of (reminders whose completed is false))) 
       try 
        set Remi to item itemNum of reminders 
        set remiT to due date of Remi 
        set tim to time string of remiT 
        set dD to date string of remiT 
        set nN to name of Remi 
        if remiT ≤ cD then 
         set val to (tim & " - " & nN & " $$" & dD & "/ENDE") 
         set output to (output & val & return) 
        end if 
       end try 
      end repeat 
     else 
      set output to "No reminders available" 
     end if 
    end tell 
    return output 
end Remi 

THX的幫助

回答

1

我看看是什麼原因造成的問題。 「Remi()」處理程序中有一個變量「Remi」。我想你不能那樣做!因此,要麼改變變量的名稱或處理程序的名稱,你應該很好。

+0

你的代碼給了我同樣的錯誤fanaugen所以我的答案仍然存在。你是說你的代碼適合你嗎?請記住,錯誤在代碼的第二次運行時開始。我在10.8.2上運行這個。 – regulus6633

+0

Thx很多,雙變量問題REMI是樹脂,一旦我改變爲處理程序名稱到不同的東西,它只是工作,所以thx很多 –

+1

我很高興它爲您工作塞爾。請將此答案標記爲您的問題的答案,以便其他人可以看到它已被回答。 – regulus6633

0

該問題是由set Remi to item itemNum of reminders聲明造成的,該聲明將remi全局變量的值從處理程序更改爲任何「itemNum of reminders」結果。第二次,當您要求AppleScript調用Remi處理程序時,它不再是處理程序,因此調用失敗。

您可以更改您的代碼以不更改全局的Remi變量,也可以使用local Remi語句在處理程序中聲明Remi本地。這保護了Remi的全球版本免於更改。

相關問題