【问题标题】:Store UITableView Information in Single NSMutableArray将 UITableView 信息存储在单个 NSMutableArray 中
【发布时间】:2013-10-06 08:37:46
【问题描述】:

我正在尝试将所有滚动过去的项目存储在 NSMutableArray 中的 UITableView 中。在我的cellForRowAtIndexPath 方法中,我包含以下代码。所有对象(Id、currentTime 等)都是 NSString。

我正在尝试将它们全部编译成一个数组,但我认为我这样做不正确。我想我可能会覆盖每个 cellForRowAtIndexPath 中的字典。

任何帮助都会很棒。最后,我只想要一个数组,它允许我查找滚动过去的“行/单元格”的各个方面......

在我的 .m 文件中:

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

[dict setObject:Id forKey:@"key1"];
[dict setObject:currentTime forKey:@"key2"];
[dict setObject:textForMyLabel forKey:@"key3"];
[dict setObject:placeLatitude forKey:@"key4"];
[dict setObject:placeLongitude forKey:@"key5"];

[scrolledPast addObject:dict];

NSLog(@"array: %@", dict);

在我的 .h 文件中:

@interface viewController {
    NSMutableArray *scrolledPast;
}

@property (nonatomic, retain) NSMutableArray *scrolledPast;

【问题讨论】:

  • 实际问题是什么?你在哪里创建数组?
  • 顺便说一句:cellForRowAtIndexPath 被调用之前单元格被显示 - 否则它们将是空的。所以你不能确定用户真的看到了该数组中的所有项。
  • 请考虑发布您的cellForRowAtIndexPath 代码。
  • @user2492064 你在哪里初始化scrolledPast
  • "我的 .h 文件中的行不是 "NSMutableArray * scrolledPast;" 我的数组是在哪里创建的吗?" - 不。你只是说有一个具有该名称的数组。您不会在该行中创建任何内容

标签: iphone ios objective-c


【解决方案1】:

你需要初始化你的scrolledPast

在您的 viewDidLoad 中执行此操作:

- (void) viewDidLoad {

    // .....
    scrolledPast = [NSMutableArray array];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多