今天一朋友发邮件咨询我一个MobileNotes实例的问题:
说按照 沙梓社先生的《iOS应用逆向工程》第二版 第七章 进行实验,发现标题不会即时进行更新(试验环境为iOS8.4+iPhone4s)
由于我没有这本书,刚好看到一个样章:
http://www.doc88.com/p-6992150739940.html
样章用的8.1.x,我没有这个版本的,因此同样找了台4s 8.4的系统进行测试
我大致浏览了一遍,然后写个tewak给提出问题的朋友试验了下~
self.note.contentAsPlainText; // 发现这句得到的是更新前(也就是未点击“Done”按钮前)的内容
遂修改如下:
@interface NoteObject : NSObject
@property(readonly, nonatomic) NSString *contentAsPlainText;
// Added By PiaoYun/P.Y.G
@property(readonly, nonatomic) NSString *title;
@end
@interface NoteTextView : UIView
@property(copy, nonatomic) NSString *text;
@end
@interface NoteContentLayer : UIView
@property(retain, nonatomic) NoteTextView *textView;
@end
@interface NotesDisplayController : UIViewController
@property(retain, nonatomic) NoteContentLayer *contentLayer;
@property(retain, nonatomic) NoteObject *note;
- (void)setTitle;
@end
%hook NotesDisplayController
%new
- (void)setTitle{
/**
Modify By PiaoYun/P.Y.G
www.chinapyg.com
www.dllhook.com
**/
NSString *nsContent = [[self note] title]; // self.note.contentAsPlainText;
NSString *nsContentLen = [NSString stringWithFormat:@"%lu", (unsigned long)[nsContent length]];
self.title = nsContentLen;
}
- (void)viewWillAppear:(BOOL)view{
%orig;
[self setTitle];
}
- (void)viewWillDisappear:(BOOL)view{
%orig;
self.title = nil;
}
- (void)noteContentLayerContentDidChange:(NoteContentLayer *)noteContentLayerContent updatedTitle:(BOOL)title{
%orig;
[self setTitle];
}
%end
已有1位网友发表了看法:
发表评论