作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个派生自 UIViewController 的简单 ViewController,我在其中添加了一个枚举属性 swipeDirection。在代码中,我通常将其称为 self.swipeDirection,但在一个实例中,我注意到我错误地键入了 self.SwipeDirection。
如果我跳转到定义,我会得到正确的变量,并且代码会正确编译和运行,所以我确信正在使用正确的变量。
.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];
// ...
}
最佳答案
理论上,默认情况下,所有属性都被编译成一个 setter 方法调用,使用以下规则 - property
的 setter 名称是 setProperty:
(注意属性名称的第一个字母成为大写)。所以下面两行代码
self.SwipeDirection = ...
self.swipeDirection = ...
被编译为现有的setter方法
[self.setSwipeDirection:...]
从编译器的角度来看是等价的。
注意 - 这对(默认)getter 方法不起作用,下面的行将不会编译:
NSLog(@"%d", self.SwipeDirection);
关于ios - 如果该属性称为 swipeDirection,为什么 self.SwipeDirection 起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16665935/
我有一个派生自 UIViewController 的简单 ViewController,我在其中添加了一个枚举属性 swipeDirection。在代码中,我通常将其称为 self.swipeDire
我是一名优秀的程序员,十分优秀!