gpt4 book ai didi

ios - 如何在类方法 Objective-C 中访问 self

转载 作者:可可西里 更新时间:2023-11-01 06:21:39 24 4
gpt4 key购买 nike

我有一个使用类方法的实用程序类。我试图在类方法中引用 self 但不能。我想知道如何在类方法中声明以下内容:

[MRProgressOverlayView showOverlayAddedTo:self.window animated:YES];

self.window 它说成员引用类型 struct objc_class *' 是一个指针;也许你打算使用 '->'

与无法调用 self 相关的另一个问题是我如何在我的 .h 中引用声明的 @property我的 .m 中的一个类方法。

这是我的类方法:

.m
+ (void)showHUD
{
[UIApplication sharedApplication].networkActivityIndicatorVisible=YES;
[MRProgressOverlayView showOverlayAddedTo:self.window animated:YES];

//I would preferably like to call my property here instead
}


.h
@property (nonatomic) MRProgress * mrProgress;

最佳答案

类方法的全部意义在于它不是特定实例的一部分。在类方法内部,self 是类。

如果需要绑定(bind)到特定的实例,那么应该是实例方法。如果您想要一个访问特定实例的静态方法,则将该实例 (self) 传递给它(尽管很难想象在很多情况下这样做有意义)。

在上面的例子中,showHUD 几乎可以肯定是一个实例方法。如果出于某种原因这没有意义,那么它应该是:

+ (void)showHUDForWindow:(UIWindow *)window;

然后您可以将其称为 showHUDForWindow:self.window 并根据需要使用它。

关于ios - 如何在类方法 Objective-C 中访问 self ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255506/

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