организация слишком большого количества массивов Xcode objc - PullRequest
0 голосов
/ 28 января 2019

Я работаю над приложением, которое будет иметь более 50 массивов с более чем 100 элементами в каждом массиве.Они используются, когда применяются определенные условия.Есть ли способ разместить их на разных страницах и импортировать их по мере необходимости.Вот пример моего кода.

if([washington isKindOfClass:[MKPolygon class]]){

        MKPolygon *polygons = (MKPolygon*) washington;

        CGMutablePathRef mpr = CGPathCreateMutable();

        MKMapPoint *polygonPoints = polygons.points;

        for (int p=0; p < polygons.pointCount; p++){
            MKMapPoint mp = polygonPoints[p];
            if (p == 0)
                CGPathMoveToPoint(mpr, NULL, mp.x, mp.y);
            else
                CGPathAddLineToPoint(mpr, NULL, mp.x, mp.y);
        }

        if(CGPathContainsPoint(mpr , NULL, mapPointAsCGP, TRUE)){

           citiesArray10000 = [NSArray arrayWithObjects:
                                @"47.620499&-122.350876&187&Seattle Washington",
                                @"47.673554&-117.416595&1843&Spokane Washington",
                                @"47.252199&-122.459832&&Tacoma Washington",
                                @"45.637236&-122.596516&&Vancouver Washington",
                                @"47.597839&-122.156489&&Bellevue Washington",
                                @"47.385318&122.2169290&&Kent Washington",
                                @"48.003267&-122.174223&&Everett Washington",
                                @"47.476075&-122.192026&&Renton Washington",
                                @"47.308837&-122.336104&&Federal Way Washington",nil;

есть 50 состояний, то есть 50 операторов if, и в каждом состоянии будет 6 или более массивов и до 100–200 записей в каждом массиве.Это обеспечивает очень обширную страницу просмотра контроллера со всей этой информацией.Стоит ли размещать массивы каждого состояния на одной странице и как-то вызывать их при необходимости.Извините, это, вероятно, просто, но я не знаю, как это сделать.

Ответы [ 3 ]

0 голосов
/ 28 января 2019

Поместите данные в plist-файлы, хранящиеся в комплекте вашего приложения.Затем вы можете загрузить каждый файл plist по мере необходимости.Не кодируйте столько данных в вашем коде.Компиляция занимает вечность, и ваш код трудно читать.

Возможно, вы захотите написать какой-то класс модели данных, который инкапсулирует данные.Затем вы можете просмотреть контроллер может создать экземпляр модели данных, указав, какие данные необходимы.Класс модели данных может по мере необходимости загружать правильные данные.

0 голосов
/ 29 января 2019

Похоже, что в этом случае рекомендуется использовать SQLlite или другую локальную базу данных для поддержки таких данных.

0 голосов
/ 28 января 2019

вы можете использовать архитектуру MVC для вашего кода.Сохраняйте только тот код, который изменяет представление, которое будет видно пользователю, например, изменение текстовых полей и меток в viewController, и пишите все другие функции в другом файле и вызывайте эти функции по мере необходимости.Подобно созданию точек и получению информации, можно выполнить другие файлы в качестве модели для этого контроллера представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...