- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 LLDB 常用命令记录
设置断点:对所有C函数 functionA 设置断点breakpoint set –name functionnameA –name functionNameBbr s -n functionAb functionA对FileA文件的LineNum行设置断点breakpoint set –file FileA –line LineNumberb fileA:LineNumberC++ 函
2016-06-04 22:51:37
4001
原创 找出UILabel引起异常的文字
大家可能都遇到过,一些比较特殊的字符,在排版的时候,或者在渲染的时候,会抛出异常。 当我们调试的时候,加了异常断点,就会触发断点。 这次主要是记录一下,当出现这种异常的时候,怎样把引起这个异常的文字找出来。我们先看一下出现这种异常时的堆栈信息(lldb) bt* thread #1: tid = 0x70ed65, 0x0000000118914c6b libc++abi.dylib`__cx
2016-06-04 22:49:10
1851
原创 Dealloc 时取 weak self 时崩溃
今天无意这中遇到一个奇怪的崩溃,先上引起崩溃的代码:- (void)dealloc{ __weak __typeof(self)weak_self = self; NSLog(@"%@", weak_self);}当执行到dealloc的时候,程序就crash 掉了。 崩溃信息如下:objc[4572]: Cannot form weak reference to insta
2016-06-04 22:47:28
5601
1
原创 NSTimer使用注意事项
NSTimer是ios上比较常用的定时器组件,在使用了一段时间后,发现有些地方是需要注意一下的。NSTimer 是需要配合NSRunLoop 才可以正常工作的。+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds invocation:(NSInvocatio
2016-03-24 10:08:16
691
原创 ARC下NSException有可能会引起内存泄露
在使用Instrumnents对程序进行内存测试的时候,发现有几处异常处理的地方提示内存泄露。经过分析得知,因为异常处理,改变代码执行路径,导致编译生成的 release 代码没有执行。
2016-03-15 00:58:29
438
原创 UIScrollView _delegateScrollViewAnimationEnd 引起的崩溃处理
我们先看一下崩溃堆栈:0x01c9709f libobjc.A.dylib`objc_msgSend + 19 0x00c3656b UIKit`-[UIScrollView(UIScrollViewInternal) _delegateScrollViewAnimationEnded] + 62 0x00c3665a UIKit`-[UIScrollView(UIScrollViewInter
2015-06-05 14:07:13
2090
原创 条件表达式注意的问题
最近遇到一个 条件表达式引起的问题,记录一下。UInt32 myRank = 1;BOOL hasMyRank = NO;NSInteger myRank = hasMyRank ? myRank : -1;这段代码在armv7s的架构下运行结果是 -1 ,但在arm64下运行结果却是 UInt32 的最大值。原因是 条件表达式 是根据第一个值的类型作为返回值的。U
2015-05-28 21:24:27
417
原创 处理UITabBarController双击事件
因业务功能需要,要处理TabBarController的item双击事件。 查看了一下UITabBarController的属性和方法,发现并没有提供类似的功能,于是动手写一个。第一印象是给TabBarItem添加手势,但后来发现UITabBarItem 只是一个NSObject ,是不可以添加手势的, 只有UITabBar可以。给UITabBar添加手势,双击后是可以收到事件,但
2015-05-27 21:26:12
923
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人