组织太多数组Xcode objc

时间:2019-01-27 23:50:24

标签: ios objective-c arrays xcode

我正在开发一个应用程序,它将具有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 :(得分:2)

将数据放入存储在应用程序包中的plist文件中。然后,您可以根据需要加载每个plist文件。不要在代码中硬编码那么多数据。编译需要花费很多时间,而且很难阅读代码。

您可能想要编写某种数据模型类来封装数据。然后,您可以使用视图控制器创建指定需要哪些数据的数据模型实例。数据模型类可以负责根据需要加载正确的数据。

答案 1 :(得分:0)

您可以对代码使用MVC架构。仅保留更改对用户可见的视图的代码(例如,更改viewController中的文本字段和标签),并将所有其他函数写入不同的文件,然后根据需要调用这些函数。像创建点和获取信息一样,可以在其他文件上作为此视图控制器的模型。

答案 2 :(得分:0)

在这种情况下,最佳实践似乎是使用SQLlite或其他本地数据库来维护此类数据。