【问题标题】:Max elements in a Mutable Array iOS可变数组 iOS 中的最大元素数
【发布时间】:2015-06-01 10:52:16
【问题描述】:

我正在从 Parse DB 中检索一些数据并将对象的字符串添加到之前初始化的可变数组中,但是当它有 100 个元素时它会停止添加元素,是否可以使数组更大?如果是,怎么做?

编辑:

从 Parse 检索到的对象数组也是 100 个 elem,但在 DB 中有超过 100 个对象,其键为:“Nom”

查询代码:

NSString *parseClassName = [[NSUserDefaults standardUserDefaults] stringForKey:@"ParseObjectDefault"];
    PFQuery *queryDades = [PFQuery queryWithClassName:parseClassName];
    [queryDades whereKeyExists:@"Nom"];
    [queryDades findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        if(!error){
            for (PFObject *corredor in objects){
                NSString *nom = [corredor objectForKey:@"Nom"];
                [self.corredorsNomArray addObject:nom];
                NSString *dorsal = [corredor objectForKey:@"Dorsal"];
                [self.corredorsDorsalArray addObject:dorsal];
            }
        } else {
            NSLog(@"Error:%@ %@", error, [error userInfo]);
        }
    }];

解决方案:

解析限制默认为 100,所以我不得不像这样更改查询限制:

queryDades.limit = 1000;

【问题讨论】:

  • 为什么数组在 100 个对象之后会停止添加元素?添加100个对象后是否有任何错误消息,执行停止,挂起什么状态?
  • 你能理解“停止添加”是什么意思吗?这意味着您永远不会看到超过 100 个项目?您确定您没有分批加载 100 个并清除每批或其他内容的数组。我非常怀疑问题出在数组本身。也许你应该展示你已经发布的所有代码,并更详细地解释正在发生的事情。

标签: ios objective-c parse-platform nsmutablearray


【解决方案1】:

解析默认限制为 100 个对象。检查您的阵列大小。您可以将上限设置为 1000。

【讨论】:

  • 所以问题是 Parse 只检索 100 个元素?
  • 是的,看起来像。因为默认解析只返回 100 个对象
【解决方案2】:

NSMutableArray 可以容纳的最大元素,以及方法- (instancetype)initWithCapacity:(NSUInteger)numItems NS_DESIGNATED_INITIALIZER on NSMutableArray 实例将 unsigned int 作为参数。因此,无论目标机器上unsigned int 的最大值是什么,都是可以添加到数组中的对象的理论限制。但是,实际限制更可能取决于可用的内存量。

注意:您还应该检查您的代码,如果有某些东西导致了数组的 100 个对象限制

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-17
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多