2

このApplescriptを使用して、GeekToolを使用してデスクトップ上の「都市」というリストからリマインダーを表示していますが、何らかの理由で、本文に何もないこのリストのすべてのリマインダーに対して「欠損値」が出力されます。そうならないようにするにはどうすればよいのでしょうか?

set theList to {}
set theOutput to ""

tell application "Reminders"
    repeat with i from 1 to (count of every reminder of list "Cities")
        if reminder i of list "Cities" is not completed then
            set theList to theList & {name, body} of reminder i of list "Cities"
        end if
    end repeat
    repeat with i from 1 to (count of every item of theList)
        set theOutput to (theOutput & item i of theList as string) & return
    end repeat
    return theOutput
end tell

私が求めている出力は次のとおりです。

イスタンブール - 2008 年 3 月に訪問 ラスベガス 京都 - 2012 年 2 月に訪問

現在、その:

イスタンブールは 2008 年 3 月に訪問 ラスベガスは 2012 年 12 月に京都を訪問

4

1 に答える 1

0

これは、空のボディの値が でありmissing value、これを文字列に変換すると になるために発生しています"missing value"。これを回避するには、リマインダーに値を追加する前に、欠落している値を明示的に確認できますtheList

repeat with i from 1 to (count of every reminder of list "Cities")
    set theReminder to reminder i of list "Cities"
    if theReminder is not completed then
        if the body of theReminder is not missing value then
            set theList to theList & {name, body} of theReminder
        else
            set theList to theList & {name of theReminder, ""}
        end if
     end if
 end repeat

本文のないリマインダーの間に空白行を入れたくない場合{name of theReminder}は、else 句で単純に使用できます。

于 2012-10-25T01:21:38.280 に答える