有谁知道为什么这不起作用?

时间:2012-03-18 03:09:50

标签: objective-c xcode

我不知道为什么这不起作用,我用Google搜索并没有发现任何东西。我是Obj c和xcode的新手。代码工作正常,如果我在 - (void)setX:(int)x之前添加一些东西,但是当它在它自己的时候没有...它构建成功,但我确实得到了这个,“线程1:断点3.1”在实现中的行是setX。

// Program to work with fractions – class version 
#import <Foundation/Foundation.h>
//---- @interface section ----
@interface XYPoint: NSObject

-(void) setX: (int) x;
-(void) setY: (int) y;
-(int) getX;
-(int) getY;

@end

//---- @implementation section ----
@implementation XYPoint 
{
    int xpoint;
    int ypoint;
}

-(void) setX: (int) x
{
    xpoint = x;
}

-(void) setY: (int) y
{
    ypoint = y;
}

-(int) getX
{
    return xpoint;
}

-(int) getY
{
    return ypoint;
}
@end

//---- program section ----
int main (int argc, char * argv[])
{
    @autoreleasepool 
    { 
        XYPoint *point = [[XYPoint alloc] init];
        [point setX: 4];
        [point setY: 3];
        NSLog(@"The points are: %i, %i", [point getX], [point getY]);

    return 0; 
    }
}

这不起作用,但确实如此:

// Program to work with fractions – class version 
#import <Foundation/Foundation.h>
//---- @interface section ----
@interface XYPoint: NSObject

-(void) setX: (int) x;
-(void) setY: (int) y;
-(int) getX;
-(int) getY;

@end

//---- @implementation section ----
@implementation XYPoint 
{
    int xpoint;
    int ypoint;
}
-(void) crap: (int) thing {}
-(void) setX: (int) x
{
    xpoint = x;
}

-(void) setY: (int) y
{
    ypoint = y;
}

-(int) getX
{
    return xpoint;
}

-(int) getY
{
    return ypoint;
}
@end

//---- program section ----
int main (int argc, char * argv[])
{
    @autoreleasepool 
    { 
        XYPoint *point = [[XYPoint alloc] init];
        [point setX: 4];
        [point setY: 3];
        NSLog(@"The points are: %i, %i", [point getX], [point getY]);

    return 0; 
    }
}

好的,所以我只是缩进它,所以它会被格式化粘贴在这里,当我把它放回去时它有用......有谁知道发生了什么?

2 个答案:

答案 0 :(得分:3)

根据您的说明,听起来您设置了断点。执行到达该点时,断点会进入调试器(带有“线程1:断点3.1”之类的消息)。这样您就可以检查变量值,逐步执行代码等。

在Xcode中,断点看起来像一个蓝色标记,箭头指向源代码行的左边缘。尝试将光标放在该行上,然后从菜单中选择“产品/调试/删除当前行的断点”(或按⌘\)。

答案 1 :(得分:1)

执行以下操作:

@interface XYPoint: NSObject
{
    int xpoint;
    int ypoint;
}

- (void) setX: (int) x;
- (void) setY: (int) y;
- (int) getX;
- (int) getY;

@end

//---- @implementation section ----
@implementation XYPoint 

etc...

实例变量在@interface部分中声明。现在它应该工作。请注意,在Objective-C中,一个不使用getXsetX:,而是使用无参数xsetX:setX:x组合甚至可以像属性一样使用。