我有一个使用类方法的实用程序类。我试图在类方法中引用 self 但不能。我想知道如何在类方法中声明以下内容:
[MRProgressOverlayView showOverlayAddedTo:self.window animated:YES];
self.window
它说成员引用类型struct objc_class *' is a pointer; maybe you meant to use '->'
另一个与无法调用相关的问题self
我将如何引用已声明的@property
in my .h
在我的类方法中.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
是班级。
如果您需要绑定到特定实例,那么它应该是实例方法。如果您想要访问特定实例的静态方法,请传递该实例(self
)(尽管很难想象在很多情况下这是有意义的)。
在上面的例子中,showHUD
几乎可以肯定应该是一个实例方法。如果由于某种原因这没有意义,那么应该是:
+ (void)showHUDForWindow:(UIWindow *)window;
然后你可以将其称为showHUDForWindow:self.window
并根据需要使用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)