我不明白我在这里可能做错了什么,因为我正在遵循一本说明书 - 关于设置调用类方法的值。我已经#imported了它,一切都应该没问题。但是 Xcode 提示:不知道“setWeightInKilos 和”setHeightInMeters 的类方法选择器。这些实例方法是在“Person”类中实现的,所以我不知道为什么会这样。
Person *aPerson = [[Person alloc] init];
[Person setWeightInKilos:96];
[Person setHeightInMeters:1.8];
float bmi = [Person bodyMassIndex];
最佳答案
这些是实例 方法,而不是类 方法。因此,您应该使用变量 aPerson
的名称在实例上调用它们,而不是类 Person
的名称:
Person *aPerson = [[Person alloc] init];
[aPerson setWeightInKilos:96];
[aPerson setHeightInMeters:1.8];
float bmi = [aPerson bodyMassIndex];
一般来说,所有在前面用-
声明的方法都接受一个带有该类实例的变量;用 +
声明的方法采用类名。
如果 heightInMeters
和 weightInKilos
被声明为属性,您还可以使用另一种语法:您可以编写
aPerson.weightInKilos = 96;
aPerson.heightInMeters = 1.8;
不过,这只是同一事物的不同语法;在这两种情况下都会调用 setter 方法。
关于objective-c - Objc - 在 ivars 和实例方法上调用和设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11497801/