草庐IT

objective-c - 对不是基于字符串的字符串的 nsarray 进行排序

所以我有一个数组,我没有按特定顺序从Web服务中检索例子:0=>xlarge,1=>large,2=>XXlarge,3=>small,4=>medium,5=>xsmall我需要对它们进行排序:首先基于特定的-可以是反向字母:smallmediumlarge其次,我需要根据它们的“x”计数器部分对它们进行排序:xsmallsmallmediumlargexlargexxlarge我知道我可以通过强力字符串匹配来做到这一点,但我真的很想知道如何巧妙地做到这一点,也许是正则表达式或更优雅的东西? 最佳答案 使用NSComparator

iphone - 如何以编程方式构建本地化日历月份名称的 NSArray?

我正在本地化/国际化我的iPhone应用程序并有一个问题。在我的应用程序的一个地方,我显示了一年中12个月的列表。由于它目前处于非本地化状态,我只是将一月到十二月硬编码到NSArray中。我想使用NSCalendar以编程方式根据用户的语言环境构建这个NSArray月份。执行此操作的最佳方法是什么? 最佳答案 您可以从NSDateFormatter获取月份的本地化名称:NSDateFormatter*df=[[NSDateFormatteralloc]init];for(inti=0;i

ios - 来自 NSArray 的 NSString

我正在尝试从数组创建一个字符串。但是,它的生成方式有条件,如下所述。NSArray*array=[NSArrayarrayWithObjects:@"Hello",@"World",nil];[arraycomponentsJoinedByString:@","];这将输出:Hello,World。但是,如果第一个项目是空的,那么有没有办法接收唯一的第二个。你好,@""=>你好@"",世界=>世界你好,世界=>你好,世界 最佳答案 另一种方法是获取数组的可变副本并删除无效对象。也许是这样的:NSMutableArray*array=

ios - 使用 NSSecureCoding 编码/解码 NSArray 时出现意外类错误

背景我们有多个符合NSSecureCoding协议(protocol)的类。@interfaceClassA:NSObject//...@end@interfaceClassB:NSObject//...@end我们注意到NSArray也符合NSSecureCoding。因此,我们尝试以下方法。对于编码:NSArray*array=...[archiverencodeObject:arrayforKey:@"AirdropDataKey"];解码NSArray*array=[unarchiverdecodeObjectOfClass:[NSArrayclass]forKey:@"Air

ios - 根据一组有序字符串对 NSStrings 的 NSArray 进行排序

我有一个NSArray,其中包含一些NSString对象。例如:NSArray*objects=@[@"Stin",@"Foo",@"Ray",@"Space"];现在我需要根据以下字符串顺序对该数组进行排序。NSArray*sortOrder=@[@"John",@"Foo",@"Space",@"Star",@"Ray",@"Stin"];所以答案应该是NSArray*sorted=@[@"Foo",@"Space",@"Ray",@"Stin"];我怎样才能做到这一点?回答:基于dasblinkenlight的已接受答案,我做了以下操作,它很有魅力。NSMutableArray*

ios - 根据 NSDictionay 中的键对 NSDictionary 的 NSArray 进行分组

我正在尝试过滤掉NSDictionaries的NSArray。在下面的示例中,我希望dict1、dict2和dict4分组在一个数组中,dict3和dict5分组在第二个数组中,dict6分组在第三个数组中。我在NSArray中获取这些数据,所以基本上下面的“orig”数组是我的输入,我知道我需要根据“Name”键进行分组。我没有循环遍历NSArray,而是使用valueForKeyPath返回基于键路径的数组,但这不起作用(日志崩溃-[NSMutableArrayaddObjectsFromArray:]:arrayargumentisnotanNSArray')。任何建议。NSDi

ios - 将 NSDictionary 转换为 NSArray

这两种将NSDictionary转换为NSArray的语法有什么区别?//replyInfo是NSDictionaryNSArray*values=[[NSArrayalloc]init];values=[replyInfovalueForKey:@"response"];//whenthis?values=[replyInfoallValues];//whenthis? 最佳答案 values=[replyInfovalueForKey:@"response"];这会为您提供字典中特定键的值。在values=[replyInfoa

ios - 从现有 NSArray 创建新 NSArray 的标准约定是什么?

假设我有一个NSDictionaries的NSArray,它有10个元素长。我想用每个字典上单个键的值创建第二个NSArray。我能想到的最好的方法是:NSMutableArray*nameArray=[[NSMutableArrayalloc]initWithCapacity:[arraycount]];for(NSDictionary*pinarray){[nameArrayaddObject:[pobjectForKey:@"name"]];}self.my_new_array=array;[arrayrelease];[nameArrayrelease];}但从理论上讲,我应该

Objective-c 静态 NSArray 初始值设定项

我有这段代码(较大部分的一小部分-只是这里显示的麻烦部分):#definekSizeLarge@"large"-(void)determineBestFileSizeWithLimit:(int)limit{staticNSString*largeName=kSizeLarge;staticNSArray*nameArray=@[kSizeLarge];...}编译器喜欢第一个静态变量而讨厌第二个,说Initializerelementisnotacompile-timeconstant从第二行中删除static会使编译器满意。我做错了什么或没有做对? 最佳

ios - Xcode : Expected method to write array element not found on object of type 'NSArray *' 错误

我有另一个数组问题...我声明了一个数组如下:NSArray*sliderValAtTimes;这是有错误的代码:代码:sliderValAtTimes[x]=sliderValue;错误:在“NSArray*”类型的对象上找不到写入数组元素的预期方法声明:intx=0;sliderValue=[[NSStringalloc]initWithFormat:@"%0.0f",self.slider.value];任何帮助都会很棒! 最佳答案 NSArray是不可变的。您不能替换NSArray的元素。你需要一个NSMutableArra