Проверка системной даты при запуске приложения - PullRequest
0 голосов
/ 06 июня 2011

Я создал приложение на основе appleScript в Xcode V3.2.6 под OSX 10.6.7.Я хочу иметь дополнительный код для своего приложения, чтобы при запуске системы он сравнивал дату, которую я установил в приложении, с датой системы.Если дата в указанном диапазоне, продолжить.Если проверка даты выходит за пределы диапазона, немедленно прекратите работу программы.

В настоящее время код выглядит примерно так:


on clicked the Object
    if name of theObject = "One" then
        try
            display dialog "ONE"
        end try

    else if name of theObject = "two" then
        try
            display dialog "TWO"
        end try
    end if
end clicked

on action theObject

end action

Один из очень хороших пользователей в этой четверкепост Чак опубликовал что-то.Код прекрасно работает под Apple Script, но не когда я вставил в Xcode.Может кто-нибудь сказать мне, что я делаю не так?

от Чака

set range to 3 * days 
set targetDate to (date "Saturday, March 19, 2011 12:00:00 AM") 
set currDate to current date 
if abs(targetDate - currDate) > range then 
    display dialog "quit" 
else 
    display dialog "continue" 
end if 

on abs(n) 
    if n < 0 then 
        return -n 
    else 
        return n 
    end if 
end abs 

Большое спасибо!

1 Ответ

1 голос
/ 07 июня 2011

Прошло много времени с тех пор, как я работал с технологией, ранее известной как AppleScript Studio. :) Однако я только что создал приложение Cocoa-AppleScript и вижу, что файл UntitledAppDelegate.applescript имеет по умолчанию следующее:

script UntitledAppDelegate
    property parent : class "NSObject"

    on applicationWillFinishLaunching_(aNotification)
        -- Insert code here to initialize your application before any files are opened 
    end applicationWillFinishLaunching_

    on applicationShouldTerminate_(sender)
        -- Insert code here to do any housekeeping before your application quits 
        return current application's NSTerminateNow
    end applicationShouldTerminate_

end script

Обратите внимание на обработчик on applicationWillFinishLaunching_ и комментарий, размещенный там Xcode. Здесь вы хотите разместить код, который будет выполняться при запуске программы. Например, я поместил туда оператор beep, и приложение запустило звуковой сигнал при запуске. Так что, думаю, у вас может быть что-то вроде этого:

on applicationWillFinishLaunching_(aNotification)
    -- Insert code here to initialize your application before any files are opened
    set range to 3 * days 
    set targetDate to (date "Saturday, March 19, 2011 12:00:00 AM") 
    set currDate to current date 
    if (currDate - targetDate) > range then 
        display dialog "quit" 
    else 
        display dialog "continue" 
    end if 
end applicationWillFinishLaunching_
...