2011年10月10日

摘要: setup 和 tearDown 在每个测试方法的开始和结束都会被执行。对于有 dom 结构改变的场景有时候是不可逆的改变,目前只能按一定顺序执行测试方法,使 setup 逻辑只执行一次。框架代码会自动检测以 "test" 开头的测试用例,执行顺序为字母顺序,如果希望按顺序执行测试则需要对命名作一些调整。fireClickSequence 会引发完整的按钮动作过程,比如 mouseDown, click, couseUp, 而 fireClickEvent 仅引发 click 事件,引发事件是直接采用生成对象然后执行 callback 的方法,并非原生的浏览器事件。goog阅读全文
posted @ 2011-10-10 14:45 沙加 阅读(65) 评论(0) 编辑

2011年9月27日

摘要: http://blog.html.it/layoutgala/LayoutGala09.html象这样的布局在用鼠标选取左边内容的时候很容易造成选取的面积太大,经仔细分析是因为选区跨越了 display:float 元素的边界,暂时也没有特别好的解决方案,不过可以稍微优化一下,只要选取的开始区距文字不是太远就可以。将外围的定宽 div 两边多留一些白,比如 width:1000px (>a + b + c ), 然后左边的那一列给一个 margin 就行 ,比如 总宽是 960 那么 margin = (1000 - 960) / 2 , 如果还觉得效果不够好,外面的还可以设宽些,现在最阅读全文
posted @ 2011-09-27 16:01 沙加 阅读(57) 评论(0) 编辑

2011年9月26日

摘要: 看到一个 JS 题:只允许使用 +-*/ 和 Math.* ,求一个函数 y = f(x, a, b);当 x > 100 时返回 a 的值,否则返回 b 的值,不能使用 if else 等条件语句,也不能使用 |, ?, 数组试解如下:<script>function transition(x, a, b){ x = Math.max(x, 0); // 先处理负数。 if(x == 100){ return b; } var tmp = Math.ceil(Math.min(Math.max(x - 100, 0), 1)); return a*tmp + b*Math.阅读全文
posted @ 2011-09-26 09:28 沙加 阅读(152) 评论(2) 编辑

2011年8月27日

摘要: 一个相当无聊的东西,只是告诉你 html5 canvas 如何进行基本的使用:<!DOCTYPE html><html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /><titl阅读全文
posted @ 2011-08-27 11:16 沙加 阅读(114) 评论(0) 编辑

2011年8月22日

摘要: 简单总结如下:bind 直接绑定 handler 于元素上delegate 绑定事件在父级元素上live 绑定于 document 之上为啥有了 bind 还需要 delegate ?使用 deletegate 不需要为每一个元素都绑定事件处理器,并能处理动态创建的元素的 dom 事件。为啥 delegate 优于 live?它只作用于靠近目标目标元素的父级元素上,不需要冒泡到 document,在需要的时候可以停止冒泡事件;live 需要绑定于特定的 css 选择器,而 delegate 不需要,灵活性更高。为啥还要用 live?一般用于作用广泛的全站事件,比如 hovercard。阅读全文
posted @ 2011-08-22 11:05 沙加 阅读(114) 评论(0) 编辑

2011年8月19日

摘要: 使用 @synchronized() 来标明一个同步的方法。实现同步的方式与其它语言类型,使用一个互斥锁,锁定对象决定了锁定范围的大小,比如锁定实例对象只对当前实例生效,锁定类对象对所有实例生效。当同步方法中的代码抛出异常时,运行时会解锁,让下面等待代码执行此同步方法...阅读全文
posted @ 2011-08-19 09:32 沙加 阅读(317) 评论(0) 编辑
摘要: Object-C 提供类似 Java / C++风格的错误处理模型,当使用 -fobjc-exceptions 开关(gcc > 3.3)时,它可以工作,但是只限于 OS X v10.3 以后的版本,之前的版本并不提供这一支持。使用错误捕获的原则与其它语言类似:你不能用它来当作正常的处理流的判断条件,而把它仅仅当作“意外”可以使用多个 @catch 块来捕获不同的错误类型。Cup *cup = [[Cup alloc] init];@try { [cup fill];}@catch (NSException *exception) { NSLog(@"main: Caught 阅读全文
posted @ 2011-08-19 09:26 沙加 阅读(102) 评论(0) 编辑
摘要: 在 object-c 中,selector 包含两种意义:在源文件中,它指向一个方法调用,在编译后它指向一个 unque indentifier。编译后的 selector 的类型为 SEL,同名的方法的选择器也相同。使用 selector 来调用object 方法是 Cocoa 框架 "目标-动作" 编程模型的基础。可以使用 @selector 来为 selector 创建一个别名:SEL setWidthHeight;setWidthHeight = @selector(setWidth:height:);在编译时用别名方法引用 seletor 不会对性能造成大的影响。阅读全文
posted @ 2011-08-19 09:00 沙加 阅读(138) 评论(0) 编辑

2011年8月17日

摘要: 默认的动态行为:对象是动态类型推断的只有在运行时才分配内存消息是动态绑定的,对象只能执行它所理解的消息”方法调用“虽然动态执行让程序变得灵活,但是也少了编译时的类型检查,你可以使用静态类型来进行编译时检查。Rectangle *thisObject = [[Square alloc] init];象这样指定类型,基本上只影响到编译时的检查,其它的行为跟 typed as id 是一样的。好处;1。 静态类型检查2。显式的方法参数类型与返回值。3。允许你使用 structure pointer 直接访问对象的实例变量。使用静态类型后,如果一个对象没有响应一个它应该响应的消息,那么会报错把一个静态阅读全文
posted @ 2011-08-17 15:49 沙加 阅读(80) 评论(0) 编辑
摘要: 快速枚举使用的语法:for ( TypenewVariable in expression ) { statements }orTypeexistingItem;for ( existingItem in expression ) { statements }枚举期间对象不能被改变。使用快速枚举的三个类:NSArray, NSDictionary, NSSet如何使用:NSArray *array = [NSArray arrayWithObjects: @"One", @"Two", @"Three", @"Four&qu阅读全文
posted @ 2011-08-17 15:27 沙加 阅读(150) 评论(0) 编辑
摘要: 上一章讲了对类的方法进行扩展, 相关引用就是为现存的 class 增加另外的实例可引用变量(通常是一个静态变量),这个功能只在 iOS and OS X v10.6 以后提供。引入这种机制的原因类同于类的方法扩展。static char overviewKey;NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", nil];// For the purposes of illustration, use initWithFormat: t阅读全文
posted @ 2011-08-17 15:08 沙加 阅读(58) 评论(0) 编辑
摘要: category 下称类别允许你甚至在没有类源码的情况下扩展一个类的功能,给它增加方法。** 这个可以理解为 "mixin" 的一种机制。主要作用是使相同的方法在没有继承关的类中复用。要使用它需要在类的@interface 文件中的category 处指名方法的名并在对应的实现文件中编写代码。但是不能使用 category 为类添加新的实例变量。category 只是一种编译时手段,定义在里面的方法与类的实例方法在运行时没有任何的不同。#import "ClassName.h"@interface ClassName ( CategoryName )//阅读全文
posted @ 2011-08-17 14:49 沙加 阅读(167) 评论(0) 编辑

2011年8月16日

摘要: 本节讨论了如何使用申明属性与系统内部实际使用了自动生成的方法用作属性访问的接口,由此引入的实例变量管理等等问题。使用申明属性 declared properties 可以方便地实现访问器方法 accessor methods.申明属性为访问器方法行为提供一种清晰,明确的规范。编译器帮你将申请属性扩展为访问器方法实现以短减你书写的代码量。申明属性也是一类标识符并且有自己的作用域,因此编译器可以探测到未申明的属性。语法:@property(attributes) type name;例如:@interface MyClass : NSObject{ float value;}@property f阅读全文
posted @ 2011-08-16 21:48 沙加 阅读(80) 评论(0) 编辑

2011年8月14日

摘要: **以下内容中 interface 指代传统意义上的接口, 而@interface 指代 Objective-C 中的类型规范概念,以免混乱。看到这一章,有点奇怪,其实只要将 protocal 当作 C# 里面的接口来认识就好了。因为 Objective-C 给每个 Class 都分配了一个 @interface ,因此用这人概念来表达 interface 的意思。抽象出接口的目的:1. 相似方法组的实现有共同的规范。2. 让“接口”独立于类。3. 封装没有继承关系的类的共性。if ( [assistant respondsToSelector:@selector(helpOut:)] ) {阅读全文
posted @ 2011-08-14 23:09 沙加 阅读(448) 评论(0) 编辑
摘要: 创建一个对象需要丙步:1. 动态为新对象分配内存。2. 将新分配的内存与相关的值产生关联。直到这两步都做完,对象创建过程才算全部完成,虽然是两个步聚,但是在编写代码的时候通常使用一行代码来完成:id anObject = [[Rectangle alloc] init];分离这两个步骤给我们更多的选择择。基对象 NSObject 中的 alloc 和 allocWithZone 方法提供两种分配方式 。这两个方法一般不需要在子类中覆写。它们为成员变量分配足够的内存以供使用。具体的步骤:1. 初始化一个 isa 实例并指向 class object. 2. 将其它成员变量置为零。对象还需要进行进阅读全文
posted @ 2011-08-14 19:18 沙加 阅读(170) 评论(0) 编辑

2011年8月13日

摘要: 关于类的定义:编译器虽然不强制,但是类型的接口申明与实现代码最好放在两个不同的文件中,以方便使用这些类的开发人员查看。实现的文件使用 .m 结尾。接口文件可以使用任何其它的扩展名。因为它经常被 included 到其它的文件中,因此通常使用 .h 的扩展名。分离接口与实现是面向对象设计方法中推荐的做法。@interface ClassName : ItsSuperclass{ instance variable declarations}method declarations@end接口定义开始于 @interface ,结束于 @end静态方法使用 + 开头,实例方法使用 - 号开头,如:+阅读全文
posted @ 2011-08-13 14:17 沙加 阅读(97) 评论(0) 编辑
摘要: 这个系列的内容与官方文档 Objective-C 语言介绍的内容一一对应,总共分为以下几个部分:对象、类型、消息定义一个类为对象分配内存并初始化协议属性申明分类与扩展相关引用快速枚举实现静态行为选择器错误处理线程总体说来 Objective-C 与主流面向对象的语言如C#, java 有许多共通之处,其核心是建立在C上的一套动态运行时系统,它帮助程序实现动态类型推定,垃圾回收等任务。类似于 IronPython 这种用静态语言去做了一个动态的运行时。以下是第一部分笔记:一种面向对象的语言一个对象库一套开发工具一个运行时在实例对象中,变量是私有的,如果需要访问则需要提供一个专用访问方法。对象的 阅读全文
posted @ 2011-08-13 11:33 沙加 阅读(160) 评论(0) 编辑

2011年6月22日

摘要: 使用 git checkout -b [your_branch_name] origin/[remote_branch_name] 签出远程分支在本地建立一个对应分支时出错: ubuntu:~/zhihu$ git checkout -b hotfix origin/hotfixfatal: git checkout: updating paths is incompatible with switching branches.Did you intend to checkout 'origin/hotfix' which can not be resolved as comm阅读全文
posted @ 2011-06-22 22:57 沙加 阅读(161) 评论(1) 编辑
摘要: 跟游戏开的相关的一个问答网站http://gamedev.stackexchange.com/两个常用库ChipmunkandBox2D 还有一个cocos2dios 上的游戏开发系列:http://www.raywenderlich.com/tutorialsChipmunk 是基于这篇 paper 的实现:http://graphics.ethz.ch/Downloads/Publications/Papers/2003/Tes03/Tes03.pdf如果是3D的,可能会用到Unity3D来源参考文档:http://stackoverflow.com/questions/5847846/p阅读全文
posted @ 2011-06-22 14:34 沙加 阅读(86) 评论(0) 编辑

2011年6月14日

摘要: important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 > 继承 > 通配符阅读全文
posted @ 2011-06-14 17:48 沙加 阅读(121) 评论(0) 编辑

导航

公告

昵称:沙加
园龄:5年10个月
粉丝:36
关注:13
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

统计

搜索

 

我的标签

随笔分类(89)

随笔档案(98)

Atlas相关

积分与排名

最新评论

阅读排行榜

推荐排行榜