gpt4 book ai didi

objective-c - 在 Objective-C 中不调用覆盖 setter

转载 作者:太空狗 更新时间:2023-10-30 03:57:41 25 4
gpt4 key购买 nike

我正在调试示例教程片段,对覆盖 setter 感到困惑。

我声明并覆盖如下所示:

//
// PolygonShape.h
//

@interface PolygonShape : NSObject
{
int numberOfSides;

}

@property int numberOfSides;


//
// PolygonShape.m
//

@synthesize numberOfSides;
// custom setter.
- (void) setnumberOfSides:(int) i
{
if ((i > minimumNumberOfSides) && (i <= maximumNumberOfSides))
numberOfSides = i;
else
NSLog (@"Number of sides outside limits:\n You entered %d, limits are min.:%d, max.:%d",
i, minimumNumberOfSides+1, maximumNumberOfSides);
}


//
// main.m
//

poly = [[PolygonShape alloc] init];

poly.numberOfSides = 2;

[poly setnumberOfSides:2];

所以我假设的想法是,因为我“覆盖numberOfSides 的合成 setter,所以 poly.numberOfSides = 2;会调用我的 (void) setnumberOfSides:(int) i 函数。但是,调用该函数的唯一方法是当我明确执行 [poly setnumberOfSides:2];

我不明白。那么重写有什么意义呢?

或者更有可能的是,我做错了什么? ;)

最佳答案

大写不正确,大写很重要。它应该是 setNumberOfSides:

关于objective-c - 在 Objective-C 中不调用覆盖 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3072822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com