代码之家  ›  专栏  ›  技术社区  ›  Jules

Objective-C,如何生成字符串数组/列表并对每个字符串进行计数?

  •  0
  • Jules  · 技术社区  · 14 年前

    我的目标是生成一个数组,我可以使用它为UITableView添加节头。我认为最简单的方法是生成一个sections数组。

    所以在populate data array函数中,我想填充一个显示数组。因此,记录1,在显示数组中查找第一个日期,如果不存在,则创建一个新的数组项,如果存在,则向计数添加1。

    所以我最后应该做这样的事。

    arrDisplay(0).description = 1/June/2001; arrDisplay(0).value = 3;
    arrDisplay(1).description = 2/June/2001; arrDisplay(1).value = 0;
    arrDisplay(2).description = 3/June/2001; arrDisplay(2).value = 1;
    arrDisplay(3).description = 5/June/2001; arrDisplay(3).value = 6;
    

    我的问题是如何创建并使用具有值的数组,在这里我可以将添加的新元素添加到现有元素的计数中并搜索现有元素?

    4 回复  |  直到 14 年前
        1
  •  1
  •   griotspeak    14 年前

    我想,如果我明白你的意思,一本易变的字典就行了。(正如NR4TR所说)但是,我认为对象是描述,关键是计数。你可以用同样的手势检查钥匙和计数。如果ObjutoFrKE的返回值为NIL,则不存在。

    NSMutableDictionary *tableDictionary = [[NSMutableDictionary alloc] init];
    
    NSString *displayKey = @"1/June/2001";
    
    NSNumber *displayCount = [tableDictionary objectForKey:displayKey];
    
    if (displayCount != nil) {
     NSNumber *incrementedCount = [[NSNumber alloc] initWithInteger:[displayCount integerValue] + 1];
     [tableDictionary removeObjectForKey:displayKey];
     [tableDictionary setValue:incrementedCount
          forKey:displayKey];
     [incrementedCount release];
    }
    else {
     NSNumber *initialCount = [[NSNumber alloc] initWithInteger:1];
     [tableDictionary setValue:initialCount
          forKey:displayKey];
     [initialCount release];
    }
    

    编辑:

    字典、集合和数组都保存要检索的对象。所需的保存和检索方式驱动决策。我是基于这样一个问题来思考的:“当我需要一个物体时,我所拥有的信息的性质是什么?”

    NSDictionary和NSMutableDictionary

    • 为每个键保留n个对象。(我想…我不需要测试一个限制,但我知道您可以将NSSet作为一个值返回。)

    NSArray和NSMutableArray

    • 按顺序放置n个对象。
    • 索引是最重要的信息位。(您可以请求对象的索引,但即使在这里,索引也是重要的部分)
    • 通常,您将使用数组驱动表视图,因为数组的有序性质适合。

    NSSet、NSMutableSet和NSCountedSet

    • 没有秩序的物体的集合。

    您可以使用[nsset setFromArray:myArray]将其中任何一个更改为另一个;

    所有这些东西都可以把另一个当作物体。我认为数组作为您的顶层是正确的想法,但除此之外,它还成为了一个实现的问题

        2
  •  1
  •   knuku    14 年前

    尝试一系列字典。每个字典包含两个对象-节标题和节行数组。

        3
  •  0
  •   Ben    14 年前

    如果您想有一个描述和一个行数,那么您可以创建一个具有这两个属性的类,并用该类生成一个对象的NSArray,或者不只是使用NSDictionary来存储键/值查找。

        4
  •  0
  •   Chuck    14 年前