- 博客(38)
- 收藏
- 关注
原创 MRC模式下生成的类对象自动使用 autorelease
之前在一篇博客里看到,NSAutoreleasepool里定义且新生成的类对象,会隐式地自动给这个类对象使用一次autorelease方法。 但是,书上的代码和我自己写的代码表明,这个说法是不对的,必须是生成类对象方法里在生成了一个新对象之后,显式的调用了autorelease,才有这种方法的效果。 之前的这种说法,只是因为许多Foundation类的方法里做了这个事情,比如NSMutable
2015-07-30 22:23:24 1261
原创 MRC模式下property 的retain带来的内存泄露
下面代码中, “printf("%lu\n",[mstr retainCount]); // retain 1 copy 无穷大 asign 无穷大” 这一行的输出结果,可以看到有内存泄露, 其原因为? //下面代码实在MRC模式下运行的#import @interface person:NSObject{ NSString *na
2015-07-29 22:15:47 922
原创 OC里类属性存取器 retain、copy、assign(缺省值) 的工作方式自写代码分析
若类的某个字段为类对象,则在MRC条件下其存取器的 retain、copy、assign 设置至关重要。 下面是在网上查到的 retain、copy、assign 的工作方式说明:assign:本参数的缺省值,不重新申请内存,也不给对象的引用计数加1,只是单纯的引用retain:相当于多个变量指向同一个对象,使用引用计数;copy: 复制一个新的过来,他们不再指向同一个对
2015-07-29 22:06:26 425
原创 OC里MRC模式含有对象字段类的典型错误代码示范
MRC模式下,管理对象内存的3原则为: 生成对象时,使用autorelease 对象代入时,先autorelease后再retain 对象在函数中返回时,使用return [[object retain] autorelease];下面使用代码验证如下 --不使用autoreleasepool,更加直观的来展示!①、OC里不允许重载运算符,因此,当使用
2015-07-27 21:57:53 650
原创 NSMutableArray类addObject方法对对象retainCount的影响 --在MRC下
下面代码表明, NSMutableArray类的addObject方法,执行的时候,好像是首先申请一个指针变量内存,然后将对象的地址赋值给这个指针变量,再把这个指针变量作为一个节点添加到数组的元素地址链表中。在形式上,NSMutableArray类的addObject方法,对同一个对象执行了m次,则这个对象的retainCount会加上m,如下面代码所示:#import
2015-07-27 19:48:39 1600
原创 各种用到的程序开发工具清单
一、软件测试类:①、webload工具 : BS程序的负载测试二、windows平台程序查看工具:三、高级语言编程开发工具四、低级语言程序开发工具五、硬件编程语言
2015-07-27 13:42:19 498
转载 如何强制固定dreamweaver网页表格宽度?
如何强制固定dreamweaver网页表格宽度? 一般在制作网页的时候,会往表格的单元格中插入一些文字,但如果插入的文字比较长,则会促使整个表格变得很宽,极其不美观,甚至会影响整个网页的布局。 而且在有一些时候,会因为一些需要只用到一个多大的表格。这时候就要用到强制固定表格大上这个标签。但是一般情况下,即便是你设置了表格的宽度为某个像素,例如:100px,也不能阻止表格因
2015-07-27 11:44:07 4563
原创 自己写代码验证MRC和ARC的各种内存回收机制
一、MRC的条件下①、任何在作用域内创建的”autoreleased”对象(像”fileName”),虽然并没有显示的调用”autorelease”方法,但都将被当前池所管理并释放。 //以下代码运行结果表示,本句验证成功!//下面的是不开启ARC的代码 下面的代码表明 在pool模块中定义的对象,会自动执行一次autoreleasepool#import
2015-07-26 22:27:37 421
原创 奇葩的OBJ-C ~ 1 父类的类方法可以用来新建一个子类的对象 -- 使用关键字self
OC里允许使用父类对象的指针给子类的指针赋值,编译的时候只报个warning,这个已经够奇葩了,但是还有更奇葩的...如下面代码所示,父类里有一个类方法,返回一个新生成的本类对象。 子类里并没有重写这个类方法,但是使用的时候却可以通过这个方法来生成一个子类的对象,经isKindOfClass方法测试,生成的确实是本类的对象。 如代码中注释所示,本代码的关
2015-07-25 22:23:09 948
转载 Objective-C中的@property和@synthesize用法
@代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用。 功能:让编译好器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。 如:1、在头文件中:C代码 @property int count;
2015-07-25 18:30:19 376
转载 OBJ-C异常处理大全
以下文章由两篇转载的文章组成,第一篇文章似乎有些不妥的地方 ,在里面有用红字标出文章1Objective-C中处理异常需要用到NSException类,它是所有异常的基类。你可以直接使用NSException类来捕获异常,也可以继承一个新的类。第一步你需要先定义一个自己的异常类,在.h文件中加入如下代码:[java] view p
2015-07-24 21:53:46 1029
转载 NSString / NSData / char* 类型之间的转换
1. NSString转化为UNICODE String:(NSString*)fname = @“Test”;char fnameStr[10];memcpy(fnameStr, [fname cStringUsingEncoding:NSUnicodeStringEncoding], 2*([fname length]));与strcpy相比,memcpy并不是遇到'\0'就结束,而
2015-07-24 20:43:36 453
转载 关系数据库设计范式介绍
.1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。 说明:在
2015-07-23 14:06:13 380
转载 在Xcode4.5中禁用ARC(Automatic Referencing Counting)
转自: http://blog.csdn.net/aking21alinjuju/article/details/8089134最近升级了xcode4.5,用上了ios6的SDK。但用着用着发现一个比较烦的问题,以前很多代码提示错误,发现原来因为xcode启用了ARC,当ARC启用后会自动在代码中加入retain、release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地
2015-07-23 08:45:32 343
转载 Automatic Reference Counting (ARC) 自动引用计数
http://blog.csdn.net/nokiaxjw/article/details/8104592http://developer.apple.com/library/mac/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html
2015-07-23 08:20:32 399
转载 IOS开发之---ARC(Automatic Reference Counting)
ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过指定的语法,让编
2015-07-23 08:17:43 316
转载 自动释放池
自动释放池,任何标记为自动释放并因此添加到池中的对象,将在池本身被释放的同时也自动释放,程序可以有多个自动释放池,它们还可以是嵌套的。如果程序在运行时将产生大量的临时对象,就可能需要在程序中创建多重自动释放池。例如:for (int i = 0; i 1000000; i++) {NSString *string = [NSString stringWithString:@"ABC
2015-07-23 08:10:45 538
转载 SQL Server事务日志作用大 常见故障轻松除
服务器意外关闭造成的损失、服务器意外关闭造成的损失、解决数据一致性问题、数据库时点恢复的问题,这四个常见的问题,SQL Server数据库管理员,可以通过了解数据日志文件,轻松排除故障。 【IT商业新闻网】当系统出现故障时,只要存在数据日志那么就可以利用它来恢复数据解决数据库故障。作为SQL Server数据库管理员,了解数据日志文件的作用,以及如何利用它来解决一些数据库的常见故障,这非常重要
2015-07-22 13:23:25 997
转载 对cocos2d 之autorelease\ratain\release的理解
Objective C内存管理进阶(二):理解autorelease:http://www.cnblogs.com/MobileDevelop/archive/2010/07/19/1779138.html看了上面博客中对autorelease的见解,对autorelease有了更深入的了解。但是还不是很理解,于是又看了代码。一开始对autorelease的“自动释放”的印
2015-07-22 00:25:14 382
转载 AutoRelease 浅析
转自: http://www.cnblogs.com/peer/archive/2011/05/19/2051124.html本篇将给您介绍”Autorelease Pools”(自动释放池)在应用中的使用技巧。1,Autorelease Pools概要一个”Autorelease Pool”实例中“包含”其它各种调用了”autorelease”方法的对象。当它释放时,其中所
2015-07-21 19:10:49 283
转载 黑幕背后的Autorelease
Autorelease机制是iOS开发者管理对象内存的好伙伴,MRC中,调用[obj autorelease]来延迟内存的释放是一件简单自然的事,ARC下,我们甚至可以完全不知道Autorelease就能管理好内存。而在这背后,objc和编译器都帮我们做了哪些事呢,它们是如何协作来正确管理内存的呢?刨根问底,一起来探究下黑幕背后的Autorelease机制。Autorelease对象什么时
2015-07-21 19:08:37 380
转载 WPF-触发器
WPF快速指导6:触发器 本文摘要: 1:属性触发器; 2:数据触发器; 3:事件触发器; Style、ControlTemplate 和 DataTemplate 都有触发器集合。 属性触发器只检查WPF从属属性,而数据触发器则可检查任何一种可绑定的属性。属性触发器一般用来检查WPF可视元素的属性,而数据触发器则通常用来检查不可视对
2015-07-20 09:22:20 304
转载 NSSet类型 以及与NSArray区别
转自: http://blog.csdn.net/duxinfeng2010/article/details/7687236NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合; NSSet , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSArray,NSDictionary(都是有序的集合)类声明
2015-07-19 17:38:30 366
转载 使用self. 导致的内存泄露
请看第一段代码:在MyObject.m中self.aObj = [[NSObject alloc] init];......- (void)dealloc{ [self.aObj release]; [super dealloc];}你能否看出这里的内存泄露?接下来看第二段:aObj = [[NSObject alloc]
2015-07-19 16:54:39 393
转载 iOS应用程序生命周期(前后台切换,应用的各种状态)详解 .
iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验。//开发app,我们要遵循apple公司的一些指导原则,原则如下:1、应用程序的状态状态如下:Not running
2015-07-19 16:54:03 391
转载 ios 线程同步
转自: http://blog.csdn.net/fengsh998/article/details/8601650线程同步4-1 同步工具1,原子操作2,内存屏蔽和volatile变量只确保每次操作都是从内存中获取信息,而不用寄存器内保存的数据OSMemoryBarrier函数,设置内存屏蔽volatile变量3,锁Table
2015-07-19 16:52:22 283
转载 IOS SEL (@selector) 原理及使用总结(二)
SEL消息机制工作原理是什么 引用下面文章:我们在之前有提到,一个类就像一个 C 结构.NSObject 声明了一个成员变量: isa. 由于 NSObject 是所有类的根类,所以所有的对象都会有一个 isa 的成员变量[公共继承].而该 isa 变量指向该对象的类(图3.15)[类在Objective-C中也是一个实体, 由于存在Objective-C 运行
2015-07-19 16:50:17 302
转载 IOS SEL (@selector) 原理及使用总结(一)
转自: http://blog.csdn.net/fengsh998/article/details/8612969SEL 类成员方法的指针可以理解 @selector()就是取类方法的编号,他的行为基本可以等同C语言的中函数指针,只不过C语言中,可以把函数名直接赋给一个函数指针,而Object-C的类不能直接应用函数指针,这样只能做一个@selector语法来取.它的结
2015-07-19 16:49:38 323
转载 Objective C中数组排序几种情况的总结
转自: http://my.oschina.net/pengloo53/blog/173810大体上,OC中常用的数组排序有以下几种方法:sortedArrayUsingSelector:;sortedArrayUsingComparator:;sortedArrayUsingDescriptors:1、简单排序(sortedArrayUsingSelector
2015-07-19 16:01:41 330
转载 OC之Block的使用
一.Block定义1.1定义(1)Block是OC中的一种数据类型,在iOS开发中被广泛使用(2)^是Block的特有标记(3)Block的实现代码包含在{}之间(4)大多情况下,以内联inline函数的方式被定义和使用(5)Block与C语言的函数指针有些相似,但使用起来更加灵活
2015-07-19 14:41:49 344
转载 C中的可变参数研究
一. 何谓可变参数int printf( const char* format, ...); 这是使用过C语言的人所再熟悉不过的printf函数原型,它的参数中就有固定参数format和可变参数(用”…”表示). 而我们又可以用各种方式来调用printf,如:printf("%d",value); printf("%s",str); printf("the number is
2015-07-15 20:58:16 287
转载 id、NSObject、id<NSObject>三者的区别
1. 我们来看看id的定义,它就是一个指针,它可以指向的类型不仅限于NSObject[代码]c#/cpp/oc代码:1typedef struct objc_class *Class;2typedef struct objc_object {3
2015-07-11 14:57:21 1130
原创 一个不会的SQL语句
12. 有两个表A 和B ,均有key 和value 两个字段,如果B 的key 在A 中也有,就把B 的value 换为A 中对应的value这道题的SQL 语句怎么写? update B set value=(select value from Awhere A.key=B.key) where exist(select *from A where A.key= B.key)
2015-07-06 14:30:52 550
转载 优化SQL查询:如何写出高性能SQL语句
1、 首先要搞明白什么叫执行计划?执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。可见,执行计划并不是固定的,它是“个性化的”。
2015-07-06 11:06:04 415
转载 Objective-C 中的BOOL ---未完成待续
在objc.h 中,BOOL 定义为:源码打印?typedef signed char BOOL; #define YES (BOOL) 1 #define NO (BOOL) 0 从上面的定义我们发现布尔变量的值为 YES/NO,或 1/0 。YES 或 1 代表真,NO 或 0 代表假。比如你定义了一个布尔变量
2015-07-05 19:31:44 447
转载 sqlServer DateTime数据类型的格式转换
转自: http://www.cnblogs.com/fubeidong/archive/2007/07/06/526247.html数据库中有个字段叫orderTime,是DateTime类型的数据,如果我们用以下SQL语句把它取出来:selectorderTimefrom orders则会把时间都显示出来,而如果改成下面的SQL语句:selectorderTim
2015-07-03 13:21:01 1008
转载 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-07-03 13:19:30 393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人