gpt4 book ai didi

iphone - 为什么委托(delegate)声明前面没有*?

转载 作者:行者123 更新时间:2023-12-03 21:12:09 25 4
gpt4 key购买 nike

我刚刚注意到委托(delegate)声明前面没有 * ...

我做了这样的事情:

@protocol NavBarHiddenDelegate;


@interface AsyncImageView : UIView {

NSURLConnection* connection;
NSMutableData* data;
UIActivityIndicatorView *indicator;

id <NavBarHiddenDelegate> delegate;

}

@property (nonatomic, assign) id <NavBarHiddenDelegate> delegate;

- (id)initWithUrl:(NSString*)url;

@end


@protocol NavBarHiddenDelegate

- (void)hideNavBar;

@end

它工作得很好,但我习惯了总是在我声明的对象前面加上一个 *,为什么不使用这个呢?!?

谢谢,

戈蒂耶。

最佳答案

这与委托(delegate)无关。

由于历史原因,类型id有所不同;将其视为任何对象*。每当你写id时,就没有*

如果所有 Objective-C 对象都有一个根类 Object,那么您可以想象 typedef Object * id; — 但没有,所以 id 是不同的(好吧,实际上,如果我没记错的话,它被定义为类似 struct objc_object * 的东西,但你不应该担心那个实现细节与尊重 -到这个级别)。

关于iphone - 为什么委托(delegate)声明前面没有*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2483180/

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