gpt4 book ai didi

ios - 联系人排序类似于 viber iOS App

转载 作者:行者123 更新时间:2023-11-29 02:43:06 25 4
gpt4 key购买 nike

我正在尝试过滤我的联系人,类似于 Viber iOS 应用程序。通过切换分段控制分为“所有”和“仅限应用程序用户”两类来列出联系人。

获取联系人列表时,如果联系人数量较多,则需要更多时间。

目前我正在手动运行 for-loop 来获取联系人,如果有任何其他替代方法,请告诉我。

`-(void)usersList:(NSMutableDictionary *) dictUsrs    
{
NSDictionary *contactDetails;
arrContactsUser = [[NSMutableArray alloc] init];
[arrContactsUser removeAllObjects];
NSArray *sorted = [[sectionForRecievedContacts allKeys] sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
// NSOrderedAscending, NSOrderedSame, NSOrderedDescending
BOOL isPunct1 = [[NSCharacterSet punctuationCharacterSet] characterIsMember:[(NSString*)obj1 characterAtIndex:0]] || [[NSCharacterSet symbolCharacterSet] characterIsMember:[(NSString*)obj1 characterAtIndex:0]] || [[NSCharacterSet illegalCharacterSet] characterIsMember:[(NSString*)obj1 characterAtIndex:0]] ||
[[NSCharacterSet whitespaceCharacterSet] characterIsMember:[(NSString*)obj1 characterAtIndex:0]];
BOOL isPunct2 = [[NSCharacterSet punctuationCharacterSet] characterIsMember:[(NSString*)obj2 characterAtIndex:0]] || [[NSCharacterSet symbolCharacterSet] characterIsMember:[(NSString*)obj2 characterAtIndex:0]] || [[NSCharacterSet illegalCharacterSet] characterIsMember:[(NSString*)obj2 characterAtIndex:0]]||
[[NSCharacterSet whitespaceCharacterSet] characterIsMember:[(NSString*)obj2 characterAtIndex:0]];

if (isPunct1 && !isPunct2)
return NSOrderedDescending;
else if (!isPunct1 && isPunct2)
return NSOrderedAscending;

return [(NSString*)obj1 compare:obj2 options:NSDiacriticInsensitiveSearch|NSCaseInsensitiveSearch];
}];

for (int j=0; j<[[dictUsrs allKeys] count]; j++) {

for (int i=0; i<[[dictUsrs valueForKey:[sorted objectAtIndex:j]] count]; i++) {

contactDetails = [[dictUsrs valueForKey:[sorted objectAtIndex:j]] objectAtIndex:i];

fetchCount++;

if ([contactDetails objectForKey:@"status"] == nil) {
NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:j];
if (fetchCount < kFetchLimit) {
[self startStatusFetcher:contactDetails forIndexPath:path withTableView:tableViewIngIngUsers];
NSLog(@"Fetch for Cell For Row at IndexPath");
}

}
if ([contactDetails objectForKey:@"registered"] != nil && [[contactDetails objectForKey:@"registered"] isEqualToString:@"yes"]) {
[arrContactsUser addObject:contactDetails];

}

}

}
[self.tableViewIngIngUsers reloadData];

}`

最佳答案

    `dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{

});`

dispatch queue 为我提供了临时解决方案,以避免这种长时间的获取延迟。

关于ios - 联系人排序类似于 viber iOS App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25505592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com