Objective c变量赋值不起作用

时间:2013-07-18 19:34:21

标签: ios objective-c

我想把函数参数放到一个数组中,我无法想象我的生活。 labelPoi是一个包含imageLocationX,imageLocationY和name的对象类。我试图将一个ViewController中找到的值分配给另一个ViewController中的值,但它对我不起作用。

这是我的第一个ViewController

PointOfInterest.imageLocationX = (((([self getDegreesFromRadians:angle_horizontal] / [self getDegreesFromRadians:FOV_Horizontal]))) *1024);
        PointOfInterest.imageLocationY = ((1-(([self getDegreesFromRadians:angle_to_bottom_of_view] / [self getDegreesFromRadians:FOV_Vertical])))*576);

PictureViewController *newlabel = [[PictureViewController alloc] display:PointOfInterest.imageLocationX andY:PointOfInterest.imageLocationY withName:PointOfInterest.name];

这是我的第二个ViewController(PictureViewController)

- (id)display:(double)imageXX andY:(double)imageYY withName:(NSString *)namee{
NSLog(@"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
NSLog(@"imageX: %f",imageXX);
NSLog(@"imageY: %f", imageYY);
NSLog(@"name: %@", namee);

labelPoi.imageLocationX = imageXX;
labelPoi.imageLocationY = imageYY;
labelPoi.name = name;
[transfer addObject:labelPoi];
NSLog(@"label.x: %f should be: %f", labelPoi.imageLocationX, imageXX);
NSLog(@"label.y: %f should be: %f", labelPoi.imageLocationY, imageYY);
NSLog(@"label.name: %@ should be: %@",labelPoi.name,namee);

return self;

}

这是输出:

2013-07-18 14:21:14.731 AR_UAV_App[10641:11303] %%%%%%%%%%%%%%%%%%%%%%%%
2013-07-18 14:21:14.731 AR_UAV_App[10641:11303] imageX: 224.485718
2013-07-18 14:21:14.731 AR_UAV_App[10641:11303] imageY: 116.353401
2013-07-18 14:21:14.731 AR_UAV_App[10641:11303] name: Beutel Student Health Center
2013-07-18 14:21:14.731 AR_UAV_App[10641:11303] label.x 0.000000
2013-07-18 14:21:14.731 AR_UAV_App[10641:11303] label.y 0.000000 should be 116.353401
2013-07-18 14:33:29.882 AR_UAV_App[10700:11303] label.name: (null) should be: Beutel Student Health Center#############################################################

为什么

NSLog(@"label.x: %f should be: %f", labelPoi.imageLocationX, imageXX);

输出0.00000?

编辑: 这是我的Poi类,它是labelPoi

#import "Poi.h"

@implementation Poi
@synthesize longitude;
@synthesize latitude;
@synthesize name;
@synthesize x;
@synthesize y;
@synthesize distance;
@synthesize isVisibleToCamera;

-(id)initWithLatitude:(double)lat AtLongitude:(double)lon withName:(NSString *)name{
    self = [super init];
    if(self){
        self.latitude = lat;
        self.longitude = lon;
        self.name = name;
    }
    return self;
}

1 个答案:

答案 0 :(得分:6)

您需要分配和初始化labelPOI。它是nil,并尝试访问nil上的属性或向{{1}}发送消息。