#import <UIKit/UIAlertView.h>
@class NSObject;
@interface SBIconController : NSObject
+ (SBIconController *)sharedInstance;
- (BOOL)isEditing;
@end
%hook SBIconController
-(void)iconTapped:(id)tapped {
SBIconController *sbic = [objc_getClass("SBIconController") sharedInstance];
if ([sbic isEditing]) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Message" message:[NSString stringWithFormat:@"%@", tapped] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
}
%orig;
}
%end
上面是我用 Logos 创建的一个简单的调整。安装后由于某种原因,没有任何工作,我只是无法弄清楚问题是什么,我该如何解决这个问题?
我的其他问题是:
- 为什么我们要像
SBIconController
已经有一个类一样声明SBIconController
类? - 为什么我们将它声明为 的子类
NSObject
? - 当我们调用
[SBIconController sharedInstance]
而不是时,为什么不直接输入 SBIconController[objc_getClass("SBIconController") sharedInstance]
呢?
非常感谢你的帮助!