我需要按顺序从iOS设备获取N个最近播放的歌曲列表.
目前,我能想象的唯一方法是将所有歌曲通过MPMediaQuery并手动排序lastPlayedDate.
这是一个可能很昂贵的操作,我想知道是否有更好的方法.
编辑:经过一些测试,这是一个非常昂贵的操作.在2500首歌曲的测试库中,花了大约20秒时间:
任何改进的建议将不胜感激.
编辑2:现在解决了,但只是为了记录这里我正在做的事情.
我正在使用如下所述的块进行排序:https://stackoverflow.com/a/805589/112702.简单地将排序方法改为布莱恩的答案,在iPod Touch 3上将我的速度提高了近20倍.
我有2个NSMutableArrays.第一个数组包含带属性的自定义对象intances NSString *itemID,第二个数组仅包含NSString具有相同值的对象itemID,但是以另一个顺序包含.我需要按itemID每个对象的属性排序第一个数组,它应该像第二个数组一样排序.
我怎么能这样做?
我有一个数组填充自定义类的实例,其中包含两个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上运行
我有一个NSDictionary.它有钥匙和物品.
为简单起见,键是问号,对象是计算答案分数.
现在,我之前是如何做到的,我将答案分数设置为键,将问号设置为对象.这样我就可以从字典中获取allKeys的数组,对它进行排序然后执行类似的操作:
for(NSString *string in tempArray){
NSLog(@"%@",[dictionary objectForKey:string]);
}
Run Code Online (Sandbox Code Playgroud)
然而,我现在遇到的(愚蠢的 - 我)问题是(显然...... duuhhh)键需要唯一,因此当计算出的答案分数相同时,只输出一个答案!
我需要一个解决方案.在PHP中你可以使用multisort数组.我想知道在objective-c中是否有类似的解决方案,或者确实有人有更好的答案?
这里的任何帮助将不胜感激.
谢谢.
我从服务器提取XML提要,提要包含火车站及其纬度和经度位置.
我设法创建了一个NSArray完整的NSDictionary对象,每个对象对应一个工作站.
在字典中有一个纬度键和经度键.我还有一个CLLocation设备位置的对象.
我知道如何计算设备和每个电台之间的距离,但距离不是字典的一部分.我想按距离设备的顺序对数组进行排序.
我该怎么办?不知道从哪里开始,谷歌或我的书对我没有多大帮助!任何帮助深表感谢.
我有一个NSMutableArray,其中包含自定义对象.每个对象都有一个name属性.有没有办法使用
[myArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]
Run Code Online (Sandbox Code Playgroud)
在某种程度上的名字?喜欢
[myArray.name sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]
Run Code Online (Sandbox Code Playgroud)
或者我最好为自定义类编写排序函数以按名称排序?谢谢.
我有一个'通用对象'的NSArray,它包含以下属性
-name
-id
-type (question, topic or user)
Run Code Online (Sandbox Code Playgroud)
如何根据泛型对象的类型对这个泛型对象数组进行排序?例如,我想在顶部显示"主题"类型的所有通用对象,然后是"用户"而不是"问题"
我有一个UITableView,它填充了一个'Product'类型的对象数组,每个对象都有一个string类型的'name'属性.单击单元格时,将显示模态视图,其中包含有关该产品的更多信息.
我想要做的是根据名称属性的第一个字母将产品分成几个部分.(喜欢iPhone联系人).
我一直在努力解决这个问题,我似乎无法在网上找到解决我特定问题的任何内容.
有人能指出我正确的方向吗?
我迫切需要对阵列进行排序:继承人的情况,
我需要根据另一个数组中的其他对象类重新排序/排序和替换数组.
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) 我有一个NSMutableArray被调用allItems,它有以下ProductData对象.
每个对象都有cid, cname, ctype和cimage.如下所示,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 ×8
ios ×6
sorting ×6
iphone ×5
nsarray ×4
nsdictionary ×2
arrays ×1
ipod ×1
mpmediaquery ×1
properties ×1
uitableview ×1