Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 所选批注存在问题_Iphone_Objective C_Ios_Mkannotationview - Fatal编程技术网

Iphone 所选批注存在问题

Iphone 所选批注存在问题,iphone,objective-c,ios,mkannotationview,Iphone,Objective C,Ios,Mkannotationview,:) 我在尝试检索所选注释的属性时遇到了一个非常奇怪的问题。以下是我的问题的简短描述: 我将所选注释数组的第一个对象传递给一个新数组,因为它是我唯一需要的对象(根据Apple doc,将所选注释数组传递给一个新数组只会选择第一个对象。但是我尝试直接从索引路径0处的所选注释数组中提取对象,这是相同的问题) 然后我将对象转换为自定义注释对象(因为这是对象应该是的) 之后,我尝试访问自定义注释临时对象的属性。这就是一切都会松动的时候。对象的NSLog仅显示内存地址。文本属性为空。所以基本上我无法访问它

:) 我在尝试检索所选注释的属性时遇到了一个非常奇怪的问题。以下是我的问题的简短描述:

我将所选注释数组的第一个对象传递给一个新数组,因为它是我唯一需要的对象(根据Apple doc,将所选注释数组传递给一个新数组只会选择第一个对象。但是我尝试直接从索引路径0处的所选注释数组中提取对象,这是相同的问题)

然后我将对象转换为自定义注释对象(因为这是对象应该是的)

之后,我尝试访问自定义注释临时对象的属性。这就是一切都会松动的时候。对象的NSLog仅显示内存地址。文本属性为空。所以基本上我无法访问它

我将感谢任何关于我做错了什么或我应该使用什么方法的帮助。 谢谢你

代码如下:

-(void) mapView:(MKMapView *)aMapView didSelectAnnotationView:(MKAnnotationView *)view
{

    if ([view isUserInteractionEnabled])
       // NSLog(@"Tapped!!!");

    {

     NSArray* selectedAnnotation=mapView.selectedAnnotations;
     CustomAnnotations *selectedAnn=[selectedAnnotation objectAtIndex:0];


       NSLog(@"selected annotation text is %@", selectedAnn.text);
我的自定义注释类有一个坐标和一个文本属性,并使用以下代码将其放置在地图上:

    CustomAnnotations* commentAnnotation = [[[CustomAnnotations alloc] initWithLocation:mapView.userLocation.location.coordinate andTitle:@"comment" andText:text]autorelease];


[mapView addAnnotation:commentAnnotation];
此外,注释视图具有以下编码:

-(MKAnnotationView *) mapView:(MKMapView *) aMapView viewForAnnotation:(id<MKAnnotation>)annotation
{


    if ([annotation isKindOfClass:[MKUserLocation class]])
        return nil;

    MKAnnotationView *customAnnotation = (MKAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:@"pin"];

    if(!customAnnotation)
    {
    customAnnotation = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pin"]autorelease];
    }
    customAnnotation.centerOffset=CGPointMake(10, -30);


    if ([annotation title]==@"comment")  
    {
        customAnnotation.userInteractionEnabled=YES;

        customAnnotation.image=[UIImage imageNamed:@"NewCommentsPin.png"];
    }

    return customAnnotation;

}
-(MKAnnotationView*)映射视图:(MKMapView*)aMapView视图用于注释:(id)注释
{
if([annotation isKindOfClass:[MKUserLocation类]])
返回零;
MKAnnotationView*customAnnotation=(MKAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:@“pin”];
如果(!customAnnotation)
{
customAnnotation=[[MKAnnotationView alloc]initWithAnnotation:annotation重用标识符:@“pin”]自动释放];
}
customAnnotation.centerOffset=CGPointMake(10,-30);
如果([注释标题]=@“注释”)
{
customAnnotation.userInteractionEnabled=是;
customAnnotation.image=[UIImage ImageName:@“NewCommentsPin.png”];
}
返回自定义注释;
}
任何帮助都将不胜感激

我解决了这个问题:我的自定义注释类正在释放dealloc中的文本。
我还有很长的路要走,直到我知道什么时候发布,什么时候不发布,但每次只执行一步!)

这是您的
发布
备忘单

当您创建一个对象,并且该对象包含任何单词
new
alloc
复制
在构造函数中保留
,然后您拥有它,并且 如果不再需要引用,请释放它