- 博客(12)
- 收藏
- 关注
原创 ERROR ITMS-90167: "No .app bundles found in the package"
/** mac系统 升级到 macOS Sierra 遇到这个问题,应该是苹果的 Bug。我用的是Xcode7.3,还没升级到8,用的Swift2 */ ERROR ITMS-90167: "No .app bundles found in the package" 解决办法: 1、先使用 Xcode7.3 打包。 2、选中打好的包,“show in Finnd
2016-09-23 17:08:58
5862
原创 Copy
#import "ViewController.h" @interface ViewController () @property (nonatomic, copy) NSString *str1; //copy 后的返回值是 “不可变” 字符串,所以 _str2,不能用copy修饰。 @property (nonatomic, copy) N
2016-04-05 22:51:05
420
原创 找到最近的Boss算法题
//层级关系,任意给两个元素,找到最近的、公共的上一级 boss membera1 members membera3 memberb1 memberb2 #import "ViewController.h" @interface ViewController
2015-12-16 18:56:22
610
原创 super和self
很多人会想当然的认为“ super 和 self 类似,应该是指向父类的指针吧!”。这是很普遍的一个误区。其实 super 是一个 Magic Keyword, 它本质是一个编译器标示符,和 self 是指向的同一个消息接受者!他们两个的不同点在于:super 会告诉编译器,调用 class 这个方法时,要去父类的方法,而不是本类里的。 当使用
2015-12-16 13:21:05
500
原创 数组遍历时遇到的小Bug
- (void)test { NSArray *arr = [NSArray array]; for (NSInteger i=0; icount - 1; i++) { //会循环很多很多很多次,原因如下: arr.count 的类型为 NSUInteger, 所以:当arr.count
2015-12-16 12:44:10
462
原创 block为什么使用copy修饰
block 使用 copy 是从 MRC 遗留下来的“传统”,在 MRC 中,方法内部的 block 是在栈区的,使用 copy 可以把它放到堆区.在 ARC 中写不写都行:对于 block 使用 copy 还是 strong 效果是一样的,但写上 copy 也无伤大雅,还能时刻提醒我们:编译器自动对 block 进行了 copy 操作。如果不写 copy ,该类的调用者
2015-12-16 12:37:35
1792
原创 曾经写的二维数组整体排序的算法
二维数组排序,如: int arr[2][3] = {{4,12,8},{10,7,17}}; 排序后: arr = {{4,7,8},{10,12,17}}; 该算法写的比较渣,嵌套了多层for循环,大学刚接触C语言时写着玩的 /* 对二维数组进行整体排序(选择排序) arr[0][0] > arr[0][1] arr[
2015-12-16 12:09:52
540
原创 RunLoop和线程的关系
//RunLoop 和线程 RunLoop 的作用就是来管理线程的,当线程的 RunLoop 开启后,线程就会在执行完任务后,处于休眠状态,随时等待接受新的任务,而不是退出。 //只有主线程的RunLoop是默认开启的,所以程序在开启后,会一直运行,不会退出。其他线程的RunLoop 如果需要开启,就手动开启, //猜想runloop内部是
2015-12-16 11:13:36
4422
原创 KVO原理
//KVO 触发原理 键值观察通知依赖于 NSObject 的两个方法: willChangeValueForKey: 和 didChangevlueForKey: 。在一个被观察属性发生改变之前, willChangeValueForKey: 一定会被调用,这就 会记录旧的值。而当改变发生后, didChangeValueForKey: 会被调用,继而 observeVal
2015-12-16 11:08:23
881
原创 ARC内存管理
ARC 内存管理: 注意三点: 一: 不要出现循环引用 二: 如果出现 Core Foundation 对象(如: CFStringRef, CTFontRef)需要使用 CFRetain(对象)、 CFRelease(对象)来管理。 另外可以通过 桥接, 桥接的三种方式 __brid
2015-12-16 11:03:38
537
原创 View与Layer
1、 view 是它的 根layer 代理,在view第一次显示和每次重绘的时候。 layer调用它的 drawInContext: 方法, 2、 在 layer 的 drawInContext:方法中,view(delegate) 调用 drawLayer:inContext:方法, 3、 在 view 的 drawLayer:
2015-12-16 10:46:34
663
原创 词语接龙算法
这是一个猎头发来的算法题,写了4个小时终于写完了。 #import "ViewController.h" @interface ViewController () //存放所有的排列组合的数组 @property (nonatomic, strong) NSMutableArray *allSorts; //存
2015-12-16 10:04:51
2885
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人