当我运行我的代码时,我注意到我的方法都没有进入类方法。 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'并移动到下一行。
有什么可能的原因导致它没有进入班级方法?
答案 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:]
。而不是一步一步,进入,退出,然后再次进入。