Iphone 限制UITableView大小

Iphone 限制UITableView大小,iphone,ios,uitableview,nsfetchedresultscontroller,Iphone,Ios,Uitableview,Nsfetchedresultscontroller,我正在获取核心数据中的两种对象,一些女孩和一些男孩。每个都有一个尺寸和出生日期 我想选择最多50个人,但不要超过10个女孩。 例如,如果我的数据库中有15个女孩和5个男孩,我希望tableView打印5个男孩和10个女孩(按出生日期排序) 我用布尔值区分男孩和女孩:sexe 你知道最好的方法是什么吗 我可以在这里限制总金额: - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)secti

我正在获取核心数据中的两种对象,一些女孩和一些男孩。每个都有一个尺寸和出生日期

我想选择最多50个人,但不要超过10个女孩。 例如,如果我的数据库中有15个女孩和5个男孩,我希望tableView打印5个男孩和10个女孩(按出生日期排序)

我用布尔值区分男孩和女孩:sexe

你知道最好的方法是什么吗

我可以在这里限制总金额:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    id <NSFetchedResultsSectionInfo> sectionInfo = [[myFetchedResultsController sections] objectAtIndex:section];

    if ([sectionInfo numberOfObjects] > 50) {
        return 50;
    } else
    {
        return [sectionInfo numberOfObjects];
    }
}
-(NSInteger)表视图:(UITableView*)表视图行数节:(NSInteger)节{
id sectionInfo=[[myFetchedResultsController节]对象索引:节];
如果([sectionInfo numberOfObjects]>50){
返回50;
}否则
{
返回[sectionInfo numberOfObjects];
}
}
但我无法在我的UITableView中限制女孩的数量


谢谢,尼尔斯。在我的脑海中,我能想到在你阅读coredata之后创建一个数据源。 使用此伪代码逻辑向数据源添加对象。用程序变量替换它应该很简单

int num_of_girls = 0;
for(i=0;i<50 && data!=nil;i++)
{
    // Fetch object from core data at index i
    if(data==girl && num_of_girls <15)
    {
        // Add to data source the data pertaining to girl
        num_of_girls++;
        i++;
        continue
    }
    // Add to data source as this is pertaining to boy
    i++;
}
int num_of_girls=0;
因为(i=0;i有趣(我不会评论性别歧视)

没有任何方法可以编写谓词来限制一半的搜索。假设数据库在表的显示过程中没有太大变化,一种技术可能是先预选十个女孩,用临时属性includeGirl标记她们,然后用

[myBoysFetchedResultsController.fetchRequest setFetchLimit:50];

你用什么信息来知道它是男孩还是女孩。只有在我们知道的情况下,我们才能提出一个条件。没有办法在请求中直接指定这个条件?你可以在cellforrowatindexpath中执行此操作,方法是在获得女孩相关数据时维护相同的变量并删除对象。如果你同意从核心数据中删除元素,请如果超过了限制,那么就可以了。否则,逻辑将非常复杂,尤其是因为单元格被重用,您每次都必须进行计算。是否可以在NumberOfRowInstitution期间读取我的NSFetchedResultController,并按照我的意愿移除和重新排序?是的,只要您有对象,就应该可以。cre呢在numberOfRowInSection委托方法中,使用NSFetchResultController中我自己的NSManagedObject数组,并使用这个新数组作为我的数据源?PS:完全没有性别歧视,如果你愿意,你可以限制男孩的数量:)当然,也许只需将前60项加载到一个可变数组中,然后删除多余的女孩。哦,就我个人而言,我将数组创建放在NSfetch查找中,该查找可能在viewDidLoad时调用。如果NSFetchResultController报告基础表的更改,请不要忘记重新加载数组。感谢@mackworth的建议,该表运行良好。然后我做了一些稍微不同的事情,但想法相同。我创建了一个新的核心数据表,它在发生更改时更新。这个名为table_Home的表(与人)只有1:1的关系。然后,当我添加/删除男孩/女孩时,我会根据自己的意愿更新我的表,并在新表上执行我的获取请求。如果我想改变男孩和女孩之间的选择算法,那就更好了。