gpt4 book ai didi

ios - 如果该属性称为 swipeDirection,为什么 self.SwipeDirection 起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:10:06 24 4
gpt4 key购买 nike

我有一个派生自 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/

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