在iOS开发里面我们经常会进行NSMutable(可变类型的类,常用的如NSMutableString,NSMutableArray,NSMutableDictionary,NSMutableData等)属性的声明,在声明时我们都知道要使用strong(强引用)来进行标识,但是很多人不知道为什么不能使用copy来进行标识,下面我们展开讨论一下: 1.为什么不能使用copy: 总所周知,所有的可变类都是继承于非可变类的,属于可变类的子类,拿NSMutableString类来举例,大家进入到NSMu…
obj.mutableStr = (NSMutableString *)[[NSMutableString alloc] initWithString:@"Hello"]; NSLog(@"%@", obj.mutableStr); [obj.mutableStr appendString:@"World!"]; // crash here: Attempt to mutate immutable object with appendString…
今天和同事在处理一处用strong声明的Block属性引发的问题时偶然发现的.在诸多教程中都会讲到:声明属性时用strong或者retain效果是一样的(貌似更多开发者更倾向于用strong).不过在声明Block时,使用strong和retain会有截然不同的效果.strong会等于copy,而retain竟然等于assign! 当然定义Block还是应该用copy(还有其他需要注意的地方,可以参考这篇文章:iOS: ARC和非ARC下使用Block属性的问题),因为非ARC下不copy的Bl…
声明属性时用strong或者retain效果是一样的(貌似更多开发者更倾向于用strong).不过在声明Block时,使用strong和retain会有截然不同的效果.strong会等于copy,而retain竟然等于assign! 当然定义Block还是应该用copy(还有其他需要注意的地方,可以参考这篇文章:iOS: ARC和非ARC下使用Block属性的问题),因为非ARC下不copy的Block会在栈中,ARC中的Block都会在堆上的. 可以这样复现问题.在非ARC环境下,定义一个简单…
From AmazeUI:http://amazeui.org/getting-started/html-css-guide HTML 属性顺序 HTML 属性应当按照以下给出的顺序依次排列,确保代码的易读性. class id, name data-* src, for, type, href title, alt aria-*, role Class 用于标识高度可复用组件,因此应该排在首位.id 用于标识具体组件,排在第二位. 布尔值属性 HTML5 规范中 disabled.checke…
今天,被问到两个JS问题,当时没回答到重点,问题虽然看起来简单,但是细节却马虎不得,在此做下记录: 1. 在Javascript中 声明时用"var"与不用"var"的区别 Javascript声明变量时 var a = 111; 和 a = 111; 两种方式一样吗? var a = 11; function test4(){ var a = 22; } test4(); console.log(a); 结果是什么呢? 11 这个好理解, 函数内的var a声明是…
打开aspx页面时不能切换到设计视图,vs 2008工具箱中无控件.打开vs 2008的工具>选项>HTML设计器时提示:加载此属性页时出错 有时还会有其它错误提示,比如打开一个Windows 应用程序项目会提示:此计算机上没有安装项目系统组件.请重新安装Visual Studio. 修复安装或者重新安装vs 2008,问题依旧. 处理方法: 1.在命令行中运行:devenv /ResetSkipPkgs 2.重启vs2008,打开vs 2008的工具中的选项,在HTML设计器项中,将起始页位…
属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter 一.普通的get 和set 属性. 一般的get 和set 属性.就是在get 中返回一个变量的值,而在set 属性中给一个变量赋值,一般的我们也把他们称之为接口,用来访问类的私有(private)或者保护(protected)成员. Circle.h文件 #import <Foundation/Foundation.h> @interface Circle…
代码: /* 属性声明方式说明: ----------------------- 1 @interface ... { id name } @end 这样声明的属性其实可以认为是private属性,因为它只能在方法里通过name引用,外部无法通过“object.name”的方式进行引用 (内部也不能通过self引用) ---------------------- 2 @interface ... @property id name @end 这样声明的属性可以认为是public属性,内部通过“s…
http://blog.sina.cn/dpool/blog/s/blog_58c5066001011gdn.html 因为: <jsp:forward和<jsp:param在被编译成java时是这样的. jsp: <%String n1 = request.getParameter('userFirstName');%><jsp:forward page='MyThirdJSP.jsp'><jsp:param name='userFirstName' value…