Получение текущего каталога в Objective C

Так как я хочу поддерживать iOS 8, я изменил функцию application(_:open:options:) в ответа Уитни Фостера на

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    let appId = SDKSettings.appId
    if url.scheme != nil && url.scheme!.hasPrefix("fb\(appId)") && url.host ==  "authorize" { // facebook
        if #available(iOS 9.0, *) {
            return SDKApplicationDelegate.shared.application(app, open: url, options: options)
        }
    }
    return false
}

и реализовал дополнительную резервную функцию

// Fallback on earlier versions
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    return SDKApplicationDelegate.shared.application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
}

21
задан itsaboutcode 11 September 2010 в 20:12
поделиться

1 ответ

Разработка далее на этом. Текущий рабочий каталог и каталог запуска могут отличаться! Возьмите этот пример, приложение запускается из корневого каталога (~).

Library/Developer/Xcode/DerivedData/MyApp-ehwczslxjxsxiob/Build/Products/Debug/MyApp.app/Contents/MacOS/MyApp -param value
NSString *p1 = [[NSFileManager defaultManager] currentDirectoryPath];
// p1 = ~/Library/Containers/com.MyApp.beta/Data
NSString *p2 = [[NSProcessInfo processInfo] environment][@"PWD"];
// p2 = ~

В зависимости от ситуации, которую Вы могли бы хотеть один или другой. В моем случае я хочу обеспечить CLI, который берет параметры пути, которые могут быть относительно текущего рабочего каталога в оболочке.

0
ответ дан 29 November 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: