Objective-C:Randomizer objectAtIndex 未对所有类型进行排序

Objective-C: Randomizer objectAtIndex Not sorting through All Types

所以我有一个 "food" table,它具有三种类型:"Meals, Desserts, and Snacks"。我将这些类别附加到“搜索选项”页面中的按钮,它们基本上执行 "Select * from food where type = 'Meals'" 类的操作并且效果很好。

问题是,当我尝试从 "All" ("select * from food") 中随机检索一个对象时,它只有 return 的饭菜。我想这可能是 "objectAtIndex:0"?

的问题
ranDom = [_entries bjl_shuffledArray];
        Place *p = [ranDom objectAtIndex:0];

所以我也尝试随机化索引:

NSInteger randomIndex = arc4random()%[_entries count];
        ranDom = [_entries bjl_shuffledArray];
        Place *p = [ranDom objectAtIndex:randomIndex];

...但它似乎仍然只从膳食中检索结果...而不是 "food" 中的其他两种类型。

知道如何从所有三种类型中获得更好的 return 结果吗?

编辑:bjl_shuffled_array 的工作原理如下:

- (NSArray *)bjl_shuffledArray
{
    NSMutableArray *shuffledArray = [self mutableCopy];
    NSUInteger arrayCount = [shuffledArray count];

     if (arrayCount > 0) {
    for (NSUInteger i = arrayCount - 1; i > 0; i--) {
        NSUInteger n = arc4random_uniform(i + 1);
        [shuffledArray exchangeObjectAtIndex:i withObjectAtIndex:n];
    }
     }
    return [shuffledArray copy];
}

因此“_entries”仅返回 30 个结果。我知道某处必须有一个限制,因为应该有大约 306 个项目。首先,我检查了应用程序的所有代码以查找数字“30”,但一无所获。所以我检查了 PHP 文件,发现有人偷偷在里面:

$rows_per_page = 30;

将“30”更改为“3000”,现在世界一切正常。感谢 Rich Tolley 的帮助。