Objective-C:在我的方法中返回NSString时出现问题

时间:2014-02-23 23:59:44

标签: objective-c nsstring

我是Objective-C的新手,我在使用NSString对象时遇到了问题。

我的程序创建了一个存储XY对的对象。安装员和吸气剂工作正常。有一种打印方法以“(x,y)格式将数据点打印到控制台,这也可以正常工作。

我想添加一个方法,将该点作为字符串返回,形式为“(x,y)”,以防它将用于其他地方的显示。

我认为这可能与需要分配/初始化由toString方法返回的NSString有关。我在stackoverflow上研究了这个问题,但无法判断我是否做错了。 When not to alloc and init an NSString

以下是带有输出的标题,接口和程序文件。

标题

#import <Foundation/Foundation.h>

@interface XYPoint : NSObject

@property int x, y;

-(void) setX: (int) xVal andY: (int) yVal;
-(void) print;
- (NSString *) toString;
@end

实施

#import "XYPoint.h"

@implementation XYPoint

@synthesize x, y;

-(void) setX: (int) xVal andY: (int) yVal
{
    x = xVal;
    y = yVal;
}

-(void) print
{
NSLog(@" (%i,%i) ", x, y);
}

-(NSString *) toString
{

    NSString *stringXY = [NSString stringWithFormat: @" (%i,%i) ",self.x,self.y ];

    return stringXY;
}
@end

程序

#import "XYPoint.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {



        XYPoint *p1 = [[XYPoint alloc] init];

        [p1 setX:1 andY: 2];
        [p1 print];

        NSString *text = [p1 toString];
        NSLog(@"This is our data point %@",text);


    }
    return 0;
}

以下是调试器和控制台的输出。

enter image description here

0 个答案:

没有答案