我正在尝试通过删除可见区域外的所有注释来更新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];
Run Code Online (Sandbox Code Playgroud)
这给了我错误- [__ NSCFSet objectAtIndex:]:在我将newAnnotations转换为NSArray的最后一行之后发送到实例0x13cd40的无法识别的选择器然后添加注释.是否有关于将数组转换为集合导致此问题的内容?如果是这样,有没有办法围绕它?
在Cocoa Touch项目中,我需要一个特定的类,不仅要有一个委托对象,还要有很多委托对象.
看起来我应该为这些代表创建一个NSArray; 问题是NSArray会保留所有这些代理,它不应该保留(按惯例对象不应该保留它们的代理).
我应该编写自己的数组类来防止保留还是有更简单的方法?谢谢!
所以我有一个数组,其中的项目数量可能会有所不同.我想知道无论如何我能得到最后一个对象NSArray?我确实想过一个int计数器来跟踪数组中的项目数量,但这看起来太麻烦了.
有谁知道这比这更好吗?
如果我有一个NSArray并且我enumerateUsingBlock用来遍历数组中的元素,但在某些情况下我需要跳过循环体并转到下一个元素,continue块中是否有任何等价物,或者我可以continue直接使用?
谢谢!
更新:
只是想澄清一下,我想做的是:
for (int i = 0 ; i < 10 ; i++)
{
if (i == 5)
{
continue;
}
// do something with i
}
Run Code Online (Sandbox Code Playgroud)
我需要的是continue块中的等价物.
我想将我的CGPoint存储到NSMutable数组中,所以,我有这样的方法:
[self.points addObject:CGPointMake(x, y)];
Run Code Online (Sandbox Code Playgroud)
但我得到了错误,它说:
"addObject"的参数1的类型不兼容.
所以,我查看了API,
- (void)addObject:(id)anObject
Run Code Online (Sandbox Code Playgroud)
anObject要添加到接收者内容末尾的对象.该值不得为零.
所以,我认为" CGPointMake "可以创建一个Object,但它无法分配.怎么了?
所以我没有数组的经验...但我需要用一个来填充UIPickerView.我通过HTTP(NSURLConnection)获取对象列表.这很好用.目前,响应以逗号分隔列表的形式存储在NSString中.我需要将其转换为数组.我认为这是我需要的数组类型:
NSArray * myArray2 = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil];
Run Code Online (Sandbox Code Playgroud)
也许我太复杂了......我真的不确定.PickerView已经有一个数组,我已经设置好了,所以要在PickerView数组中添加一个项目,我使用这个代码:
[pickerArray addObject:@"Item 1"];
Run Code Online (Sandbox Code Playgroud)
那么......我如何将逗号分隔的字符串(第1项,第2项,第3项,...)中的项分隔成单独的数组项([pickerArray addObject:@"item 1"];)??
我正在处理深度嵌套的NSArray和NSDictionary,而且至少可以说它非常耗时.[data objectatindex:0] valueForKey:@"blah"]等等
有没有人知道一个漂亮的iOS类别,以递归方式记录结构,突出显示类型并显示值?
可能要问一点但你永远不知道:)
我有一个NSArray声明如下:
@property (nonatomic, strong) NSArray *arrayRefineSubjectCode;
Run Code Online (Sandbox Code Playgroud)
我手动填写数组元素如下:
arrayRefineSubjectCode = [NSArray arrayWithObjects:
@" BKKC 2061",
@" BKKS 2631 ",
@"BKKS 2381 ",
nil];
Run Code Online (Sandbox Code Playgroud)
那么如何删除开始和结束的空格并使每个数组元素变为:
arrayRefineSubjectCode = [NSArray arrayWithObjects:
@"BKKC 2061",
@"BKKS 2631",
@"BKKS 2381",
nil];
Run Code Online (Sandbox Code Playgroud)
我尝试使用"stringByTrimmingCharactersInSet:"但它只适用于NSString.有点困惑在这里.请帮忙...
nsarray ×10
objective-c ×8
ios ×3
iphone ×3
arrays ×1
cgpoint ×1
cocoa ×1
cocoa-touch ×1
csv ×1
delegates ×1
mkmapview ×1
nsdictionary ×1
nsset ×1
nsstring ×1
retain ×1