热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何按整数对数组进行排序-howtosortanarraybyinteger

iamtryingtosortmyscoreboardbutthescoreboardissortedbynamebutiwantsortitbyscore

i am trying to sort my score board but the score board is sorted by name but i want sort it by score i.e (high to low) score plese help to solve this.i stored the playername and score details in one label.
please help me thanks in advance

我正在尝试对我的记分板进行排序,但记分板按名称排序,但我希望按分数排序,即从高到低分数,这有助于解决这个问题。我将玩家名称和得分细节存储在一个标签中。请提前帮助我

asd 45 asd 66 rrr 55 tes 42

asd 45 asd 66 rrr 55 tes 42

i want to show like

我希望表现得像

asd 66 rrr 55 asd 45 tes 42

asd 66 rrr 55 asd 45 tes 42

-(void)btnSaveScore
{
    if(!dictWinData)
        dictWinData = [[NSMutableDictionary alloc] init];


    array = [[NSMutableArray alloc] init];
    array = [[[NSUserDefaults standardUserDefaults] valueForKey:@"ScoreName"] mutableCopy];
    if([array count] == 0)
    {
        array = [[NSMutableArray alloc] init];
    }

    NSString *strName = [NSString stringWithFormat:@"%@",strNameOFPlayer];
    NSString *strScore = [NSString stringWithFormat:@"%@",[NSString stringWithFormat:@"%d",iTap]];
    int intScore = iTap;
    NSLog(@"iTap data is:--> %d",intScore);

    if([strNameOFPlayer length]==7)
        [array addObject:[NSString stringWithFormat:@"%@                   %@",strName,strScore]];
    else if ([strNameOFPlayer length] == 6)
        [array addObject:[NSString stringWithFormat:@"%@                     %@",strName,strScore]];
    else if ([strNameOFPlayer length] == 5)
        [array addObject:[NSString stringWithFormat:@"%@                       %@",strName,strScore]];
    else if ([strNameOFPlayer length] == 4)
        [array addObject:[NSString stringWithFormat:@"%@                         %@",strName,strScore]];
    else if ([strNameOFPlayer length] == 3)
        [array addObject:[NSString stringWithFormat:@"%@                           %@",strName,strScore]];
    else if ([strNameOFPlayer length] == 2)
        [array addObject:[NSString stringWithFormat:@"%@                             %@",strName,strScore]];
    else if ([strNameOFPlayer length] == 1)
        [array addObject:[NSString stringWithFormat:@"%@                              %@",strName,strScore]];


    NSSortDescriptor *sorter = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES];
    NSArray *sorters = [[NSArray alloc] initWithObjects:sorter, nil];
    [sorter release];
    NSArray *sortedArray = [array sortedArrayUsingDescriptors:sorters];
    [sorters release];


    NSUserDefaults *dfltsData = [NSUserDefaults standardUserDefaults];
    [dfltsData setObject:sortedArray forKey:@"ScoreName"];
    //        [dfltsData setObject:array forKey:@"ScoreCard"];
    [dfltsData synchronize];

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert"
                                                    message:@"Score is saved."
                                                   delegate:self
                                          cancelButtonTitle:@"Ok"
                                          otherButtonTitles:nil, nil];
    [alert show];
    [alert release];
}

1 个解决方案

#1


3  

Here you are adding the string (containing name and score) to the array. Instead, create a model class with the name (NSString*) and score (NSNumber*) members and add them to the array.

在这里,您将字符串(包含名称和分数)添加到数组中。而是创建一个名为(NSString *)和score(NSNumber *)成员的模型类,并将它们添加到数组中。

For sorting,

NSArray *sortedArray = [yourUnsortedArray sortedArrayUsingComparator: ^(id obj1, id obj2) {

    if ([[obj1 score] integerValue] > [[obj2 score] integerValue]) {
        return NSOrderedDescending;
    }

    if ([[obj1 score] integerValue] <[[obj2 score] integerValue]) {
        return NSOrderedAscending;
    }
    return NSOrderedSame;
}];

推荐阅读
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤
    开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤 ... [详细]
  • 2.2 组件间父子通信机制详解
    2.2 组件间父子通信机制详解 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 在C#编程中,数值结果的格式化展示是提高代码可读性和用户体验的重要手段。本文探讨了多种格式化方法和技巧,如使用格式说明符、自定义格式字符串等,以实现对数值结果的精确控制。通过实例演示,展示了如何灵活运用这些技术来满足不同的展示需求。 ... [详细]
  • Python 序列图分割与可视化编程入门教程
    本文介绍了如何使用 Python 进行序列图的快速分割与可视化。通过一个实际案例,详细展示了从需求分析到代码实现的全过程。具体包括如何读取序列图数据、应用分割算法以及利用可视化库生成直观的图表,帮助非编程背景的用户也能轻松上手。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 本文介绍了如何在 Vue 3 组合 API 中正确设置 setup() 函数的 TypeScript 类型,以避免隐式 any 类型的问题。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • Delphi XE Rtti单元深入解析:TRttiContext的应用与实践
    Delphi XE Rtti单元深入解析:TRttiContext的应用与实践 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
author-avatar
dmcm0008
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有