在开发(重构)中会遇到需要更新、替换、方法的时候,这时候就需要deprecated标签来表明已经废弃的方法。
举例说明:
有时候app crash的时候会看到类似如下的信息,除此之外就再也没有其他信息了 | |
MyApp [4413:40b] -[UIImage isKindOfClass]: message sent to deallocated instance 0x4dbb170 | |
这时候的错误定位方法如下: | |
- 使用gdb调试时,在debug窗口输入:info malloc-history 0x4dbb170(这里写已经dead的内存地址 | |
- 使用lldb调试[此方法仅适用于模拟器调试,需要勾选scheme中Malloc Stack选项],打开terminal,su权限(没su权限可能会报错) | |
输入:malloc_history 4413 0x4dbb170 //4413是这个app的进程pid,在报错信息中能找到MyApp [4413:40b] | |
输入以上语句之后会产生一系列log如下:(很多不用看直接跳到213行 | |
--------------------------------------- | |
malloc_history Report Version: 2.0 |
#pragma mark - | |
#pragma mark UIWebViewDelegate Methods | |
- (BOOL) webView:(UIWebView *)webView | |
shouldStartLoadWithRequest:(NSURLRequest *)request | |
navigationType:(UIWebViewNavigationType)navigationType | |
{ | |
if (_sessionChecked) { | |
[self log:@"session already checked."]; | |
return YES; |
- (void)clearCookies{ | |
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; | |
for (NSHTTPCookie *each in cookieStorage.cookies) { | |
if ([[[each properties] objectForKey:NSHTTPCookieDomain] isEqualToString:@".douban.com"] && | |
[[[each properties] objectForKey:NSHTTPCookieName] isEqualToString:@"bid"]) { | |
[cookieStorage deleteCookie:each]; | |
NSDictionary* dic = [each properties]; | |
[dic setValue:@"" forKey:NSHTTPCookieValue]; | |
NSHTTPCookie* cookie = [NSHTTPCookie cookieWithProperties:dic]; | |
[cookieStorage setCookie:cookie]; |
Only available in iOS 5.x
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];
prefs:root=General&path=About
prefs:root=General&path=ACCESSIBILITY
prefs:root=AIRPLANE_MODE
prefs:root=General&path=AUTOLOCK
prefs:root=General&path=USAGE/CELLULAR_USAGE
prefs:root=Brightness
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0 | |
//awesome! need to check usr/include/AvailabilityInternal.h |
history | awk '{CMD[$2]++;count++;}END { for (a in CMD)\ | |
print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" \ | |
| column -c3 -s " " -t | sort -nr | nl | head -n10 |
require 'fileutils' | |
class String | |
def numeric? | |
return true if self =~ /^\d+$/ | |
true if Float(self) rescue false | |
end | |
end | |
def remove_app (app_name) |
- (NSArray*)findAllLabelsOfView:(UIView*)view{ | |
NSMutableArray *array = [NSMutableArray array]; | |
NSArray *subViews = view.subviews; | |
if ([view isKindOfClass:[UILabel class]]) { | |
[array addObject:view]; | |
} | |
if (subViews.count) { | |
[subViews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { | |
[array addObjectsFromArray:[self findAllLabelsOfView:obj]]; | |
}]; |
var mc:CUnsignedInt = 0 | |
var mlist:UnsafePointer<Method> = class_copyMethodList(UIImageView.classForCoder(), &mc); | |
println("\(mc) methods") | |
for var i:CUnsignedInt = 0; i < mc; i++ { | |
println("Method #\(i): \(sel_getName(method_getName(mlist.memory)))") | |
mlist = mlist.succ() | |
} |