Seb*_*nik 4 setter overriding objective-c
我正在调试一个示例教程片段,并对设置器的覆盖感到困惑.
我声明并覆盖如下所示:
//
// 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];
Run Code Online (Sandbox Code Playgroud)
所以我的假设是,因为我" 覆盖 "合成的setter numberOfSides,然后poly.numberOfSides = 2;会调用我的(void) setnumberOfSides:(int) i函数.但相反,调用函数的唯一方法是我明确地这样做[poly setnumberOfSides:2];
我不明白.那么压倒一切又有什么意义呢?
或者更可能的是,我做错了什么?;)
Chu*_*uck 13
它资本化不正确,资本化很重要.它应该是setNumberOfSides:.
| 归档时间: |
|
| 查看次数: |
6450 次 |
| 最近记录: |