草庐IT

ios - 2 NSArrays,根据属性值查找交集?

我有2个不同类型的自定义对象的2个NSArray。对象A属性:ID:姓名:作者:对象B属性:书号:值(value):终止符:我需要过滤一个类型为“A”的对象数组,该数组的ID值等于第二个包含类型“B”对象的数组中任何对象的bookID值。我尝试通过将数组转换为集合来使用intersectSet:方法,但是由于两个对象的类型不同,所以没有任何反应。最有效的过滤方法是什么?我可以指定进行相交时要查看的属性吗? 最佳答案 这是一个示例代码:NSDictionary*dictionaryA1=@{@"ID":@"1",@"Name":@"N

ios - 使用谓词根据另一个数组过滤 NSArray

考虑下面的数组。数组包含“Alpha”类型的对象。我们只关心类型为NSString的属性username。NSArray*some_usernames=@[]NSArray*all_usernames=@[]我基本上想要一个不在数组some_usernames中的所有用户名的列表,即NSArray*remaining_usernames=@[];我打算做的方式是:NSPredicates*predicates;for(Alpha*alphainsome_usernames){predicate=[predicatewith@"username!=%@",alpha.username];

iphone - 如何按升序对日期格式为 @"Aug 2013"的字符串的 NSArray 进行排序..?

我有一个NSString对象数组,格式为...@"Aug2013"@"July2013"等等...我想按升序对这个数组进行排序。先获取单个值的日期是个好主意吗? 最佳答案 一个block中的另一个解决方案NSArray*array=[NSArrayarrayWithObjects:@"Janvier2012",@"Mars2013",@"Juin2013",@"Octobre2012",nil];NSArray*result=[arraysortedArrayUsingComparator:^(ida,idb){NSDateForm

ios - 如何将 NSMutableArray 公开为 NSArray 作为方法的返回类型

我有一个模型类,其中包含一个NSMutable对象数组。Controller类需要有权访问此数组,但该访问权限应该是只读的。这应该如何实现?模型应该将数组公开为(只读)NSMutable数组并使用常量,还是将其公开为NSArray?如果是后者,如何从NSMutableArray高效地创建NSArray,即NSArray应该如何包含对NSMutableArray/它的内容的引用而不是重复副本?(NSMutableArray保证在Controller访问它时保留在内存中)。 最佳答案 你可以直接返回你的NSMutableArray:-(

ios - 向 NSArray 添加元素

我知道我们可以只为对象使用NSMutableArray,但如果这不是一个选项,我们需要向NSArray添加新元素怎么办。我们将如何着手做这件事?我的直接答案是用原来的NSArray创建一个NSMutableArray,向其中添加新元素,然后将NSMutableArray转换回去到原始的NSArray。我在一次采访中被问到这个问题,我很好奇除了首先使用NSMutableArray之外还有什么正确的解决方案。 最佳答案 NSArray*array=[NSArrayarrayWithObjects:@"One",@"Two",nil];a

ios - 在 NSArray 中获取重复项

我有一个NSArray,其中包含一些重复的对象。我想打印哪些对象被复制,例如:NSArray*array=[NSArrayarrayWithObjects:A,B,C,A,B];现在我想在我的控制台中打印A和B,因为它们是重复的。我该怎么做? 最佳答案 您可以为此使用NSCountedSet。您可以将所有对象添加到一个计数集中,然后使用countForObject:方法找出每个对象出现的频率。了解NSCountedSet进一步引用 关于ios-在NSArray中获取重复项,我们在Stac

ios - 从 NSArray 中移除对象

如何从反转的NSArray中删除对象。目前我有一个NSMutableArray,然后我用反转它NSArray*reversedCalEvents=[[calEventsreverseObjectEnumerator]allObjects];现在我需要从reversedCalEvents或calEvents中删除atitem,并根据条件自动刷新显示数组的表格。即if(someInt==someOtherInt){removeobjectatindex0}我该怎么做?我无法让它工作。 最佳答案 这是一种使用键值编码的更实用的方法:@im

ios - 核心数据返回 NSArrays 而不是 NSStrings

出于某种原因,所有NSString类型的属性都在我的Article对象中作为NSArrays返回。这是我检索它们的函数:-(NSArray*)getSavedArticles{NSFetchRequest*fetchRequest=[[[NSFetchRequestalloc]init]autorelease];NSError*error=nil;NSEntityDescription*entity=[NSEntityDescriptionentityForName:@"Article"inManagedObjectContext:[selfmanagedObjectContext]]

ios - NSArray setCompletionBlock 内部泄漏

编辑问题:21/10/201320:10GMT在下面添加了方法的调用方式以及泄漏的对象是“allDBObjects”如果我删除它并将下面的字典更改为“NSMutableDictionary*objectsById”则没有泄漏。编辑问题:21/10/2013几天后,我不在这个问题上,我又回来了。我相信这完全归结于“重新分配问题”(https://developer.apple.com/library/ios/technotes/tn2109/_index.html#//apple_ref/doc/uid/DTS40010274-CH1-SUBSECTION11)。我已经使用MKNetwo

ios - 在比较 NSIndexPath 的行和 NSArray 计数时,是否有更好的方法来避免 'Sign comparison' 警告?

我在XCode中为我的iOS项目打开了“签名比较”(又名-Wsign-compare)警告(令人惊讶的是,默认情况下它是关闭的)。之后出现了很多这样的警告:/Users/michalciuba/projects/GlobeMobile/Classes/ACMailController.m:86:19:Comparisonofintegersofdifferentsigns:'NSInteger'(aka'long')and'NSUInteger'(aka'unsignedlong')它们通常是通过比较NSIndexPath的row属性(NSInteger)和的'count'方法返回的值