В AppleScript Я пытаюсь узнать, как проверить значение элементов списка, но когда я пытаюсь проверить, является ли элемент целым, я получаю неточные результаты. Сначала я ссылка Apple's Automation scripting guide в разделе Определения, если список содержит конкретный пункт:AppleScript проверяет, является ли значение элемента списка целым числом
property one : 1
property two : 2
property three : 3
property bad : 4
my checkProperty()
on checkProperty()
tell application "Finder"
set someList to {one, two, three, bad}
if someList contains string then
display dialog "good"
else
display dialog "not numerical"
end if
end tell
end checkProperty
Когда я выполняю это я получаю not numerical
хотя каждый элемент представляет собой целое число. Если я ссылаться Applescript, converting every item in list to integer и выполнить:
property one : 1
property two : 2
property three : 3
property bad : "bad"
my checkProperty()
on checkProperty()
tell application "Finder"
set someList to {one, two, three, bad}
repeat with theItem from 1 to length of someList
set item theItem of someList to (item theItem of someList as integer)
if theItem is integer then
display dialog theItem
else
display dialog "not numerical"
end if
end repeat
end tell
end checkProperty
Он работает до тех пор, последняя запись из списка (bad
) и ошибок из так theItem
не может преобразовать строку в целое число. Поиск по SO я натыкался Check if variable is number: Applescript и попытался принятый ответ с number:
property one : 1
property two : 2
property three : 3
property bad : "bad"
my checkProperty()
on checkProperty()
tell application "Finder"
set someList to {one, two, three, bad}
repeat with theItem from 1 to length of someList
if class of theItem is number then
display dialog theItem
else
display dialog "not numerical"
end if
end repeat
end tell
end checkProperty
но когда сценарий побежал он возвращает not numerical
для каждого элемента. Если я пытаюсь второй ответ, который использует integer:
if class of theItem is integer then
display dialog theItem
else
display dialog "not numerical"
end if
Я получаю возвращенное индивидуальный диалог для подсчета записей. Как проверить значение элемента списка в AppleScript, чтобы увидеть, является ли это целым числом или строкой, не вызывая ошибки?