Objective c 选择器元素没有有效的对象类型(Cocoa touch)

Objective c 选择器元素没有有效的对象类型(Cocoa touch),objective-c,cocoa-touch,Objective C,Cocoa Touch,我试图迭代一组对象,并为此代码中看到的每个对象创建一个注释,但在for循环的}结束时,我发现此错误选择器元素没有有效的对象类型。这是什么意思 for (POI myPOI in appDelegate.pois){ CLLocationCoordinate2D location; location.latitude=[myPOI.lat doubleValue]; location.longitude=[myPOI.lon doubleVa

我试图迭代一组对象,并为此代码中看到的每个对象创建一个注释,但在
for
循环的
}
结束时,我发现此错误
选择器元素没有有效的对象类型
。这是什么意思

    for (POI myPOI in appDelegate.pois){
        CLLocationCoordinate2D location;
        location.latitude=[myPOI.lat doubleValue];
        location.longitude=[myPOI.lon doubleValue];
        region.span=span;
        region.center=location;

        LocationAnnotation *locAnn;

        locAnn = [[LocationAnnotation alloc] initWithCoordinate:location];
        [mapView addAnnotation:locAnn];
        [mapView setRegion:region animated:YES];

        [locAnn release];
    }
另外,在循环开始时,我得到的
变量大小的对象无法初始化。并且,
实例变量lat(以及lon)被声明为受保护的

我做错了什么?
谢谢

POI是一个对象吗?如果是这样的话,您就不能将“myPOI”声明为指向POI的指针。您将需要:

POI * myPOI ...

如果POI不是对象,则不能使用快速枚举。

当我将其设置为对象时,我消除了其他错误,但现在有了一个新错误-
表达式没有有效的对象类型。
。这是什么意思?我是否必须使我的POI类符合NSFastEnumeration协议或类似协议?您需要提供更多信息。应用程序代理的“POI”属性返回什么?这个新错误被抛出到哪里?什么是POI类,“lat”和“long”返回什么(对象或原语)?我以前没有看到过这个错误,但我知道集合对象必须符合快速枚举协议(但不符合集合中的对象)。我解决了这个问题-我的appDelegate没有得到正确的实例化。一旦我整理好了,错误就消失了-谢谢你的帮助。给我们更多的信息。您所说的“错误”是什么意思?我们所说的是生成错误、生成警告、崩溃、异常或日志消息吗?