我有一个从UIViewController派生的简单ViewController,我已经添加了一个枚举属性swipeDirection。在代码中我通常将其称为self.swipeDirection,但在一个实例中我注意到我错误地键入了self.SwipeDirection。
如果我跳转到Definition我得到正确的变量,代码编译并正确运行,所以我确信正在使用正确的变量。
.h文件
enum EScrollDirection
{
E_SCROLL_DIRECTION_NONE = 0,
E_SCROLL_DIRECTION_LEFT,
E_SCROLL_DIRECTION_RIGHT,
E_SCROLL_DIRECTION_UP,
E_SCROLL_DIRECTION_DOWN
};
typedef enum EScrollDirection EScrollDirection;
@interface ProcessingViewController : UIViewController <UIScrollViewDelegate>
@property(nonatomic, assign)EScrollDirection swipeDirection;
@end
.m文件
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
CGPoint offset = self.graphScrollView.contentOffset;
self.SwipeDirection = [self getScrollDirection:self.previousTouchPoint endPoint:self.graphScrollView.contentOffset];
// ...
}
答案 0 :(得分:3)
理论上,默认情况下,所有属性都会编译为setter方法调用,并使用以下规则 - property
的setter名称为setProperty:
(注意属性名称的第1个字母变为大写)。所以以下几行代码
self.SwipeDirection = ...
self.swipeDirection = ...
编译为现有的setter方法
[self.setSwipeDirection:...]
从编译器的角度看等等。
注意 - 这对于(默认)getter方法不起作用,并且以下行不会编译:
NSLog(@"%d", self.SwipeDirection);