为什么 NSLog 不输出 aString 参数?
Why does NSLog not output aString parameter?
我在Tweak.xm中有以下代码:
%hook NSString
- (BOOL)isEqualToString:(NSString *) aString {
NSLog(@"%@", [NSString stringWithFormat:@"isEqualToString for : %@ with: %@", aString, self]);
return %orig;
}
%end
但是 syslog 输出显示 self 而不是 aString(应该在 for : 之后),示例:
Apr 9 20:46:32 remini CitrixReceiver-iPad[7972] <Warning>: isEqualToString for : with: /var/mobile/Containers/Data/Application/42123BED-A507-4CE0-97B0-20DFFD9BB78C
Apr 9 20:46:32 remini CitrixReceiver-iPad[7972] <Warning>: isEqualToString for : with: /Applications/Cydia.app
Apr 9 20:46:32 remini CitrixReceiver-iPad[7972] <Warning>: isEqualToString for : with: /private/var/lib/apt/
Apr 9 20:46:32 remini CitrixReceiver-iPad[7972] <Warning>: isEqualToString for : with: /var/mobile/Containers/Data/Application/42123BED-A507-4CE0-97B0-20DFFD9BB78C
为什么没有输出aString?
我会冒险猜测该字符串是 nil
或空的。在方法的开头检查它。即
if (aString == nil || [aString length] == 0)
{
...
}
我在Tweak.xm中有以下代码:
%hook NSString
- (BOOL)isEqualToString:(NSString *) aString {
NSLog(@"%@", [NSString stringWithFormat:@"isEqualToString for : %@ with: %@", aString, self]);
return %orig;
}
%end
但是 syslog 输出显示 self 而不是 aString(应该在 for : 之后),示例:
Apr 9 20:46:32 remini CitrixReceiver-iPad[7972] <Warning>: isEqualToString for : with: /var/mobile/Containers/Data/Application/42123BED-A507-4CE0-97B0-20DFFD9BB78C
Apr 9 20:46:32 remini CitrixReceiver-iPad[7972] <Warning>: isEqualToString for : with: /Applications/Cydia.app
Apr 9 20:46:32 remini CitrixReceiver-iPad[7972] <Warning>: isEqualToString for : with: /private/var/lib/apt/
Apr 9 20:46:32 remini CitrixReceiver-iPad[7972] <Warning>: isEqualToString for : with: /var/mobile/Containers/Data/Application/42123BED-A507-4CE0-97B0-20DFFD9BB78C
为什么没有输出aString?
我会冒险猜测该字符串是 nil
或空的。在方法的开头检查它。即
if (aString == nil || [aString length] == 0)
{
...
}