代码没有步入类方法iOS

时间:2014-02-10 16:35:40

标签: ios objective-c xcode class

当我运行我的代码时,我注意到我的方法都没有进入类方法。 e.g。

我有一个叫做的课程:

Person.h

@interface Person : UIViewController

- (BOOL)personName:(NSString *)person;

@end

Person.m

@implementation Person

- (BOOL)personName:(NSString *)person;
{
    return NO;
}
@end

现在这里是我的people.h类:从这里开始我想从人类中调用一个方法。

@interface People : UIViewController

@property () Person *person;

@end

People.m

- (IBAction)ButtonPressed:(id)sender
{
    BOOL personhasNameBOB = [person personName:@"Bob"];
}

然而“[person personName:@”Bob“];被调用 - 但从未进入Person类中的方法。当添加断点并单步执行时,它只需导航到people.h并突出显示”@property( )人*人;“然后回到'people.m'并移动到下一行。

有什么可能的原因导致它没有进入班级方法?

3 个答案:

答案 0 :(得分:2)

在将属性分配给对象之前,必须先创建对象。所以必须存在一条线:

  

Person * personhasNameBOB = [[Person alloc] init];

答案 1 :(得分:1)

您需要创建对Person类的强引用。替换行:

@property () Person *person;

@property (strong) Person *person;

我假设您在某处分配并初始化person对象,例如在viewDidLoad中。

这应该有所帮助。

答案 2 :(得分:1)

这是因为该行实际上包含两个方法调用 - 首先是-[People person]来获取person对象,然后是-[Person personName:]。而不是一步一步,进入,退出,然后再次进入。