相关疑难解决方法(0)

检索iOS中按上次播放时间排序的歌曲列表

我需要按顺序从iOS设备获取N个最近播放的歌曲列表.

目前,我能想象的唯一方法是将所有歌曲通过MPMediaQuery并手动排序lastPlayedDate.

这是一个可能很昂贵的操作,我想知道是否有更好的方法.


编辑:经过一些测试,这是一个非常昂贵的操作.在2500首歌曲的测试库中,花了大约20秒时间:

  1. 获取所有歌曲.
  2. 为所有从未播放过的歌曲指定日期(1970年1月1日).
  3. 按日期订购.
  4. 获取前N个条目.

任何改进的建议将不胜感激.


编辑2:现在解决了,但只是为了记录这里我正在做的事情.

我正在使用如下所述的块进行排序:https://stackoverflow.com/a/805589/112702.简单地将排序方法改为布莱恩的答案,在iPod Touch 3上将我的速度提高了近20倍.

ipod mpmediaquery ios

7
推荐指数
1
解决办法
2640
查看次数

使用另一个NSMutableArray的自定义对象对NSMutableArray进行排序

我有2个NSMutableArrays.第一个数组包含带属性的自定义对象intances NSString *itemID,第二个数组仅包含NSString具有相同值的对象itemID,但是以另一个顺序包含.我需要按itemID每个对象的属性排序第一个数组,它应该像第二个数组一样排序.

我怎么能这样做?

sorting iphone objective-c nsmutablearray ios

5
推荐指数
1
解决办法
1134
查看次数

使用自定义类的实例对数组进行排序

我有一个数组填充自定义类的实例,其中包含两个String属性,firstname和lastname.两者都有一个getter方法,它等于属性本身的名称.还有一种方法可以检索名为"getFullName"的人的全名.考虑下面的例子.

 CustomClass *person = [[CustomClass alloc] ...];
 person.firstname  // Returns "Thomas"
 person.lastname // Returns "Meier"
 [person getFullName] // Returns "Thomas Meier"
Run Code Online (Sandbox Code Playgroud)

现在我想按降序对Fullname这个数组进行排序.我一直在研究一些数组排序方法,但还不太清楚如何解决这个问题.我想我必须创建一些比较两个元素的比较函数,但是如何告诉SDK哪些值传递给这个方法以及我应该放在哪里(在自定义类或排序发生的类中) ?).也许有另一种/更好的方法来解决这个问题?不可否认,我几乎没有排序数组的经验.

非常感谢你的帮助!

PS.代码应该在iOS 3.2上运行

arrays sorting iphone objective-c

4
推荐指数
1
解决办法
1449
查看次数

NSDictionary拆分为两个数组(对象和键),然后由对象数组(或类似的解决方案)进行排序

我有一个NSDictionary.它有钥匙和物品.

为简单起见,键是问号,对象是计算答案分数.

现在,我之前是如何做到的,我将答案分数设置为键,将问号设置为对象.这样我就可以从字典中获取allKeys的数组,对它进行排序然后执行类似的操作:

for(NSString *string in tempArray){
  NSLog(@"%@",[dictionary objectForKey:string]);
}
Run Code Online (Sandbox Code Playgroud)

然而,我现在遇到的(愚蠢的 - 我)问题是(显然...... duuhhh)键需要唯一,因此当计算出的答案分数相同时,只输出一个答案!

我需要一个解决方案.在PHP中你可以使用multisort数组.我想知道在objective-c中是否有类似的解决方案,或者确实有人有更好的答案?

这里的任何帮助将不胜感激.

谢谢.

iphone objective-c nsdictionary nsarray

3
推荐指数
1
解决办法
5083
查看次数

按其中一个键内的值对NSDictionaries数组进行排序

我从服务器提取XML提要,提要包含火车站及其纬度和经度位置.

我设法创建了一个NSArray完整的NSDictionary对象,每个对象对应一个工作站.

在字典中有一个纬度键和经度键.我还有一个CLLocation设备位置的对象.

我知道如何计算设备和每个电台之间的距离,但距离不是字典的一部分.我想按距离设备的顺序对数组进行排序.

我该怎么办?不知道从哪里开始,谷歌或我的书对我没有多大帮助!任何帮助深表感谢.

sorting objective-c nsdictionary nsarray ios

3
推荐指数
1
解决办法
6740
查看次数

自定义类上的sortedArrayUsingSelector?

我有一个NSMutableArray,其中包含自定义对象.每个对象都有一个name属性.有没有办法使用

[myArray    sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]
Run Code Online (Sandbox Code Playgroud)

在某种程度上的名字?喜欢

[myArray.name sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]
Run Code Online (Sandbox Code Playgroud)

或者我最好为自定义类编写排序函数以按名称排序?谢谢.

iphone nsmutablearray

2
推荐指数
1
解决办法
4899
查看次数

如何根据对象的属性对数组进行排序?

我有一个'通用对象'的NSArray,它包含以下属性

-name
-id
-type (question, topic or user)
Run Code Online (Sandbox Code Playgroud)

如何根据泛型对象的类型对这个泛型对象数组进行排序?例如,我想在顶部显示"主题"类型的所有通用对象,然后是"用户"而不是"问题"

sorting properties objective-c nsarray ios

2
推荐指数
1
解决办法
1625
查看次数

基于字符串属性按字母顺序对对象数组进行排序

我有一个UITableView,它填充了一个'Product'类型的对象数组,每个对象都有一个string类型的'name'属性.单击单元格时,将显示模态视图,其中包含有关该产品的更多信息.

我想要做的是根据名称属性的第一个字母将产品分成几个部分.(喜欢iPhone联系人).

我一直在努力解决这个问题,我似乎无法在网上找到解决我特定问题的任何内容.

有人能指出我正确的方向吗?

sorting iphone objective-c uitableview ios

2
推荐指数
1
解决办法
7417
查看次数

基于具有自定义类的其他Array对NSArray进行排序

我迫切需要对阵列进行排序:继承人的情况,

我需要根据另一个数组中的其他对象类重新排序/排序和替换数组.

ParentClass :NSObject{
  NSString *name;
  NSNumber *type;
}
Run Code Online (Sandbox Code Playgroud)

这是父类,它填满了parentArray

parentArray = { parentA, parentB, parentC }
Run Code Online (Sandbox Code Playgroud)

这是另一个对象类,它有ParentClass*parent.

@class ParentClass;

EntryClass: NSObject{
 NSString *name;
 NSNumber *number;
 ParentClass *parent;
}



Now I have an array entryArray = { entryX, entryY, entryZ };

entryX.parent is one of the ParentClasses and all of them are in parentArray.

entryX.parent  == ParentC;
entryY.parent  == ParentA;
entryZ.parent  == ParentB;
Run Code Online (Sandbox Code Playgroud)

我想根据parentArray中的顺序对这个entryArray进行排序.所以如果ParentArray是:

{
 ParentA,
 ParentB,
 ParentC
}
Run Code Online (Sandbox Code Playgroud)

然后我想要排序的entryArray

{
 entryY,
 entryZ,
 entryX
}
Run Code Online (Sandbox Code Playgroud)

此外,如果缺少一个条目Object,则为entryZ,那么数组应该是

{
 entryY,
 @"0.0",
 entryX …
Run Code Online (Sandbox Code Playgroud)

sorting objective-c nsmutablearray nsarray

2
推荐指数
1
解决办法
2015
查看次数

根据一个属性排序数组

我有一个NSMutableArray被调用allItems,它有以下ProductData对象.

每个对象都有cid, cname, ctypecimage.如下所示,json对象没有按顺序排列.但是,cid是订购的指标.

我想知道您如何根据cid订购?

 [
  {
    "cid": "2",
    "cname": "Meats",
    "ctype": "main",
    "cimage": "baked_chicken.jpg"
  },
  {
    "cid": "1",
    "cname": "Dips",
    "ctype": "side",
    "cimage": "stuffed_eggplant.jpg"
  },
  {
    "cid": "4",
    "cname": "Sandwiches",
    "ctype": "sand",
    "cimage": "chickenshawarma.jpg"
  },
  {
    "cid": "3",
    "cname": "Appetizers",
    "ctype": "side",
    "cimage": "rice_lentils.jpg"
  },
  {
    "cid": "5",
    "cname": "Desserts",
    "ctype": "dsrt",
    "cimage": "cake.jpg"
  }]
Run Code Online (Sandbox Code Playgroud)

如果我使用它sortDescriptior,它部分工作.我面临的问题,当它排序时,它首先显示cid1然后显示cid10然后显示cid2.

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"cid" …
Run Code Online (Sandbox Code Playgroud)

objective-c ios

2
推荐指数
1
解决办法
87
查看次数