我有[CalCalendarStore eventPredicateWithStartDate]方法返回的CalEvents的NSArray 。 从返回的事件中,我试图只保留事件标题== @"on call" (不区分大小写)。 我可以使用下面的代码(其中“events”是一个用CalEvents填充的“NSArray”)保存标题包含 @"on call"的事件: NSPredicate *onCallPredicate = [NSPredicate predicateWithFormat:@"(SELF.title CONTAINS[c] 'on call')"]; [events filteredArrayUsingPredicate:onCallPredicate]; 我已经尝试使用谓词格式string,如: @"SELF.title == 'on call'"但这似乎不工作。 有没有更简单的方法来做到这一点?
我试图更新MKMapView通过删除可见区域外的所有注释,并添加和删除可见区域内的一些注释。 这是我的代码: NSSet *visibleAnnotations = [mapView annotationsInMapRect:[mapView visibleMapRect]]; NSSet *allAnnotations = [NSSet setWithArray:[mapView annotations]]; NSMutableSet *nonVisibleAnnotations = [NSMutableSet setWithSet:allAnnotations]; [nonVisibleAnnotations minusSet:visibleAnnotations]; [mapView removeAnnotations:(NSArray *)nonVisibleAnnotations]; NSMutableSet *newAnnotations = [NSMutableSet setWithArray:[_zoomLevels objectAtIndex:clusterLevel]]; [newAnnotations minusSet:visibleAnnotations]; [mapView addAnnotations:(NSArray *)newAnnotations]; 这给了我错误– [__ NSCFSet objectAtIndex:]:无法识别的select器发送到实例0x13cd40最后一行后,我将newAnnotations投给NSArray然后添加注释。 有什么关于将一个数组转换成一个导致这个问题的集合吗? 如果是的话,有没有办法呢?
如果我有一个NSArray,并且使用enumerateUsingBlock来遍历数组中的元素,但是在某些情况下,我需要跳过循环体并转到下一个元素,在块中是否存在任何continue等价的内容,或者是否可以直接使用continue ? 谢谢! 更新: 只是想澄清一下,我想要做的是: for (int i = 0 ; i < 10 ; i++) { if (i == 5) { continue; } // do something with i } 我需要的是continue相当于块。
我只是想,因为你可以把块像对象,如果我创build两个,然后将它们添加到一个NSArray有没有办法从数组中执行它们? int (^Block_001)(void) = ^{ return 101; }; int (^Block_002)(void) = ^{ return 202; }; NSArray *array = [NSArray arrayWithObjects:Block_001, Block_002, nil]; 编辑:更新清晰Per @ davedelong的优秀答案 int (^Block_001)(void) = [^{ return 101; } copy]; int (^Block_002)(void) = [^{ return 202; } copy]; NSArray *array = [NSArray arrayWithObjects:Block_001, Block_002, nil]; [Block_001 release]; [Block_002 release];
我有一个NSArray声明如下: @property (nonatomic, strong) NSArray *arrayRefineSubjectCode; 我手动填写数组元素如下: arrayRefineSubjectCode = [NSArray arrayWithObjects: @" BKKC 2061", @" BKKS 2631 ", @"BKKS 2381 ", nil]; 那么如何删除开始和结束的空白,并使每个数组元素变成如下所示: arrayRefineSubjectCode = [NSArray arrayWithObjects: @"BKKC 2061", @"BKKS 2631", @"BKKS 2381", nil]; 我曾尝试使用“stringByTrimmingCharactersInSet:”,但它只适用于NSString。 有点困惑在这里。 请帮忙…
我已经定义了一个类,我希望一个公有属性显示好像它是由一个NSArray支持的。 这很简单,但在我的情况下,真正的支持ivar是一个NSMutableArray : @interface Foo { NSMutableArray* array; } @property (nonatomic, retain) NSArray* array; @end 在我的实现文件( *.m )我@synthesize属性,但我立即遇到警告,因为使用self.words是试图修改NSArray 。 什么是正确的方法来做到这一点? 谢谢!
如何从NSArray中删除一个项目。
我正在处理深层嵌套NSArray和NSDictionary的,至less说是非常耗时的。 [数据objectatindex:0] valueForKey:@“blah”]等等 有谁知道一个很好的iOS类别recursionlogging结构,突出显示types和显示值? 可能会问一点,但你永远不知道:)
这两个NSArray方法有什么区别?
所以我没有arrays的经验…但我需要使用一个来填充UIPickerView。 我通过HTTP(NSURLConnection)获取对象的列表。 这工作正常。 目前,响应以逗号分隔的列表forms存储在NSString中。 我需要将其转换为数组。 我认为这是我需要的数组的types: NSArray * myArray2 = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil]; 也许我太过于复杂……我真的不确定。 PickerView已经有了一个数组,并且我已经设置了它来添加一个项目到PickerView数组中。我使用下面的代码: [pickerArray addObject:@"Item 1"]; 所以…如何将逗号分隔的string(项目1,项目2,项目3,…)中的项目分隔为单独的数组项目([pickerArray addObject:@“item 1”];)?