Убедитесь, что каталог является комплектом - PullRequest
0 голосов
/ 19 сентября 2019

ALL,

Я пытаюсь переписать какой-то старый код с новым OSX Cocoa API.

Я получил предложение использовать

-[NSWorkspace openApplicationAtURL:configuration:completionHandler:]

, чтобы открыть и выполнить пакет, однако сначала я бы хотел проверить работоспособность.

Итак, мой код будет выглядеть так:

NSURL *url = [NSURL fileURLWithPath:myPath isDirectory:YES];
NSBundle *bundle = [NSBundle bundleWithURL:url];
if( bundle == nil )
{
    printf( "Not a bundle!!";
    return -1;
}
NSWorkspace *ws = [NSWorkspace sharedWorkspace];
NSRunningApplication *app = [ws ...];

Я прав?Или есть лучший способ сделать это?

Кроме того, я думаю, мне не нужно удалять объект NSBundle, верно?

TIA!

1 Ответ

0 голосов
/ 20 сентября 2019

Если вы хотите знать, что данный URL-адрес является приложением, найдите и проверьте ресурс NSURLIsApplicationKey NSURL.

Однако делать это на самом деле не нужно: -openApplicationAtURL:configuration:completionHandler: будетвыполнить любые проверки работоспособности, подходящие и потерпеть неудачу, если есть проблема.Так что предварительная проверка будет выполнять эту предварительную работу дважды.

...