Dev*_*evC 3 objective-c class-method ios
我有一个使用类方法的Utility类.我试图在类方法中引用self但不能.我想知道如何在类方法中声明以下内容:
[MRProgressOverlayView showOverlayAddedTo:self.window animated:YES];
Run Code Online (Sandbox Code Playgroud)
self.window 它说会员参考类型 struct objc_class *' is a pointer; maybe you meant to use '->'
与无法调用有关的另一个问题self是我如何@property在我.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;
Run Code Online (Sandbox Code Playgroud)
Rob*_*ier 10
类方法的重点在于它不是特定实例的一部分.在类方法中,self是类.
如果需要绑定到特定实例,那么它应该是实例方法.如果你想要一个访问特定实例的静态方法,那么将那个实例(self)传递给它(虽然很难想象很多情况下这是有意义的).
在上面的例子中,showHUD几乎可以肯定是一个实例方法.如果由于某种原因这没有意义,那么它应该是:
+ (void)showHUDForWindow:(UIWindow *)window;
Run Code Online (Sandbox Code Playgroud)
然后,您可以将其称为showHUDForWindow:self.window并根据需要使用它.
| 归档时间: |
|
| 查看次数: |
4345 次 |
| 最近记录: |