Objective c 对复杂的数组进行排序

Objective c 对复杂的数组进行排序,objective-c,ios,Objective C,Ios,我有一个NSArray*userInputs,这个数组包含自定义对象“UserInput” 每个userInput(userInput的实例)都位于BookPage下面 @interface BookPage: NSobject { NSString *pagePrefix; ( exemple : pagePrefix = @"K1") @end 从每个userInput我知道如何切换BookPage它是这样的: BookPage *bookPage = [self.book page

我有一个
NSArray*userInputs
,这个数组包含自定义对象
“UserInput”

每个userInput(
userInput
实例
)都位于
BookPage
下面

@interface BookPage: NSobject {

NSString *pagePrefix;   ( exemple : pagePrefix = @"K1")
@end
从每个
userInput
我知道如何切换
BookPage
它是这样的:

BookPage *bookPage = [self.book pageWithID:userInput.page_id];
如何使用
pagePrefix
键对
userInputs
数组
实例
)进行排序。感谢您的回答?

您可以像这样对数组排序(考虑到您的数组包含字符串)-


可以按如下方式对自定义对象数组进行排序:

NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"pagePrefix" ascending:YES]; 
[userInputs sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]];

我认为中间有一个书的属性?

NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"book.pagePrefix" ascending:YES]; 
[userInputs sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]];

我的userInput数组不包含NSStrings,它包含自定义对象BookPage是否尝试了我的解决方案?是,它会崩溃,因为自定义对象没有属性“pagePrefix”。我的数组不包含“BookPage”对象,但它包含“userInput”object如果需要使用自定义对象UserInput进行排序,最好直接将该属性放入自定义对象UserInput中,否则这将变得更加复杂,最终是否得到解决方案?userInputs是一个数组,其中包含自定义对象“BookPage”,其中C有一个属性:NSString*pageID;(它们没有属性“pagePrefix”)NSSortDescriptor*aSortDescriptor=[[NSSortDescriptor alloc]initWithKey:@“[self.book pageWithID:input.page_id].pagePrefix“升序:是];[userInputs SortusingDescriptor:[NSArray arrayWithObject:aSortDescriptor]];我是这样做的,但它崩溃了!!!!您没有将密钥路径传递到-initWithKey:ascending。我的答案有用吗?我建议你从这里开始:中间没有一个书的属性,我已经在我的问题中描述了所有你似乎有点困惑,这个解决方案所说的是正确的,你有一个书页属性作为中介。如果可能的话,你可以这样做,因为我从来没有这样用过。是的,我也有点困惑(不是一个词)
NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"pagePrefix" ascending:YES]; 
[userInputs sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]];
NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"book.pagePrefix" ascending:YES]; 
[userInputs sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]];