Xamarin iOS NSSearchPathForDirectoriesInДомены не могут быть найдены - PullRequest
0 голосов
/ 27 сентября 2018

Писал какой-то код Xamarin.iOS для создания списка путей поиска в каталогах.

версия target-c:

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  

, и я понял, что NSSearchPathForDirectoriesInDomains недоступен в Xamarin iOS, во-первых, я подумал, что я делаючто-то не так, но потом я погуглил и буквально ничего не нашел по отношению к xamarin.ios. Это что, есть C # -эквивалент NSSearchPathForDirectoriesInDomains, о котором я не знаю?Или что именно мне не хватает?

Мой код в C # до сих пор:

NSArray paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true);

Примечание: Нет доступных быстрых действий дляэто.

1 Ответ

0 голосов
/ 27 сентября 2018

Методы Xamarin для iOS нередко имеют несколько иные имена, чем связанные методы obj c, поэтому иногда приходится искать источники привязки xamarin macios.Я нашел статический метод GetDirectories , который использует метод objc, который вам нужен:

public static class NSSearchPath
{
    public static string[] GetDirectories (NSSearchPathDirectory directory, NSSearchPathDomain domainMask, bool expandTilde = true)
    {
        return NSArray.StringArrayFromHandle (NSSearchPathForDirectoriesInDomains ((nuint)(ulong)directory, (nuint)(ulong)domainMask, expandTilde));
    }

    [DllImport (Constants.FoundationLibrary)]
    static extern IntPtr NSSearchPathForDirectoriesInDomains (nuint directory, nuint domainMask, bool expandTilde);
}

Пример использования:

string[] directories = NSSearchPath.GetDirectories(NSSearchPathDirectory.UserDirectory, NSSearchPathDomain.All);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...