自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 问答 (3)
  • 收藏
  • 关注

原创 iOS中copy 学习笔记

copy表达的属性与strong类似。但是设置方法并不保留新值,而是将其copy,当属性为NSString时,经常用此特质来保护其封装性,因为传递给设置方法的新值可能指向NSMutableString类的实例。但是NSMutableString是可以更改的,如果不设置copy,那么NSString的值就会在不知情的情况下被更改。另外block中有时也会使用copy,因为在MRC时代,方法内部的blo

2015-10-31 21:32:24 317

原创 ARC 学习笔记(二)-Outlet与弱引用

当我们使用storyboard时,可以使用Interface Builder生成Outlet对象,然后你会发现其中的内存管理属性一般都是weak修饰符。其实这是为了防止循环引用。因为一般我们都是拖出来的subview,而Outlet的持有者是superview对象,如果再用strong来修饰subview的话,那么就会出现父子的引用循环。 如果不设置为weak类型,那么UIViewControll

2015-10-30 22:15:36 336

转载 黑幕背后的Block

我们知道在Block使用中,Block内部能够读取外部局部变量的值。但我们需要改变这个变量的值时,我们需要给它附加上__block修饰符。 __block另外一个比较多的使用场景是,为了避免某些情况下Block循环引用的问题,我们也可以给相应对象加上__block 修饰符。 为什么不使用__block就不能在Block内部修改外部的局部变量? 我们把以下代码通过 clang -rewrite

2015-10-30 21:53:14 432

原创 Block的循环引用

Block是iOS 4开始导入的,类似lambda表达式,但是在使用Block的过程中,很有可能引起引用循环。如下图所示当我们遇到这种情况时,可以有两种解决方案。__block修饰符... __block id temp = self; void(^block)(void) = ^{ temp = nil; } block(); ...通过执行block方法,nil被赋值到__block变量

2015-10-30 21:46:37 283

原创 ARC 学习笔记(一)

ARC,顾名思义,automatic reference count,也就是自动引用计数。它是相对MRC(手动引用计数)而言的。当时不管是ARC还是MRC,都应该严格遵守Objective-C内存管理的基本原则: 自己生成的对象,那么即是其持有者 不是自己生成的对象,也可成为其持有者(一个对象可以被多个人持有) 如果不想持有对象的时候,必须释放其所有权 不能释放已不再持有所有权的对象 __stron

2015-10-30 21:02:37 364

原创 Objective-C 动态绑定 学习笔记

动态绑定是指在运行程序时(而不是在编译时)将消息与方法对应起来的处理过程。许多对象可能会实现相同的方法,调用方法的方式会动态的变化。因此,动态绑定实现了OOP的多态性。当然,通过动态绑定,因为可以消除用于多选场景的条件逻辑,从而可以降低程序的复杂度。 动态绑定是Objective-C的一种继承特性,它不需要任何特定的API。使用动态绑定可以将消息选择器设置为在运行程序时确定的变量。使用:@dyna

2015-10-28 23:32:13 985

原创 并发编程 学习笔记(二)

Objective-C中的并发编程有如下几个:1.语言特性使用@synchronized指令可以在Objective-C代码中创建锁,使用atomic属性限定符可以对Objective-C属性进行线程安全的访问。@synchronized(uniqueObj) { // 关键部分-被该指令保护的代码 }2.消息传递Foundation框架中的NSObject类含有多个用于向其他线程发送消息的

2015-10-28 21:08:25 237

原创 并发编程 学习笔记(一)

并发处理的优势: 增加应用程序的吞吐量 提高系统利用率 提高应用程序的整体响应性 更好地与问题领域契合 并发常用的方式: 分布式计算->多电脑计算 并行编程->多CPU计算 多进程 多线程 共享数据锁是一种控制多线程间数据访问和资源共享的机制。线程获得共享资源的锁,对该资源执行操作,接着释放这个锁,然后其他线程才能访问该资源。 但是这可能会引起死锁、活锁和资源匮乏等问题。 死锁是指两个或多个线程相

2015-10-28 19:49:33 265

原创 iOS集合 学习笔记

本文简单列举了3种常用的类。1.NSArray 和 NSMutableArray类可以管理数组,即任意类型对象的有序集合。NSArray类不可变,NSMutableArray类可变,也就是允许添加或删除集合中的对象。支持的操作包括创建和初始化数组、查询、比较。2.NSDictionary 和 NSMutableDictionary类用于管理键值。键必须具有唯一性。其中的方法包括创建和初始化对象、查询

2015-10-28 18:53:06 244

原创 打印字符串所有的子集

char set[4] = "abc"; const int max_set_num = 1 << 3; int i, j, k; for (i = 0; i < max_set_num; i++) { //遍历所有可能的组合,数值从1到2的7次方减1 for (j = 0, k = i; j < 3; j++) { //对于每一个组合,判断二进制位,

2015-10-25 06:57:57 371

原创 C++中指针和引用的异同

相同点: 都是地址,指针指向一块内存,存的是内存地址内容;引用是某块内存的别名。 不同点: 1.指针从本质上讲是一个存放地址的变量。因此指针指向的地址是可以被改变的。引用是一个别名,具有依赖性。因此引用必须一开始就初始化,并且无法改变。 2.指针可以加const,加了const后指针无法改变。 3.引用是类型安全的,而指针不是。 4.引用不能为空,而指针是可以的。 5“sizeof 引

2015-10-20 10:49:20 316

原创 用循环链表实现数组每隔两个数删除数直到最后一个数

struct node { int data; node next; }int deleteNum(char *arr) { node *head = new node; head->data = 0; head->next = NULL; node *p = head; int i = 0; //建立循环链表并赋值 for (

2015-10-19 23:57:24 812

原创 c/c++ strcpy函数的自己实现

include <assert.h>char * my_strcpy (char *strDest, cosnt char *strSrc) { assert (strSrc != NULL); assert (strDest != NULL); char *address = strDest; while ((*strDest++ = *strSrc++) != '\

2015-10-19 16:20:00 523

原创 字符串全排列

class Solution28 { public: void Permutation(char *pStr) { if (pStr == NULL) { return; } Permutation(pStr, pStr); } private: //指针pstr指向整个字符串的第一个字符,pbegin指

2015-10-17 15:34:45 265

原创 stackview 属性解析

axis属性决定stack的方向是垂直还是水平; alignment属性决定垂直于stack的axis的views的布局; distribution属性决定沿着stack的axis的views的布局; baselineRelativeArrangement属性决定根据baselines布局views间的垂直距离; layoutMarginsRelativeArrangement属性决定是否

2015-10-13 14:10:01 1060

原创 有环链表中寻找到环的起点

用2个辅助指针,第一个指针p1每次走一步,第二个指针p2每次走两步。当p1走到环的起点时走了a步,那么p2肯定在环中,而且走了2a步,距离环的起点是2a-a步。如果p1再走b步与p2相遇,那么就会有这么一个等式a + b = 2 * (a + b) - k * n其中,k就是b在环中走的圈数,n是环的长度。因为相遇时可能p2在环中走了k圈了.上述等式可以转换为下式a + b = k * n这时,把p

2015-10-01 23:00:46 919

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除