上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要: 如果我们在 Objective C 中向一个对象发送它无法处理的消息,会出现什么情况呢?根据前文《深入浅出Cocoa之消息》的介绍,我们知道发送消息是通过 objc_send(id, SEL, ...) 来实现的,它会首先在对象的类对象的 cache,method list 以及父类对象的 cache, method list 中依次查找 SEL 对应的 IMP;如果没有找到且实现了动态方法决议机制就会进行决议,如果没有实现动态方法决议机制或决议失败且实现了消息转发机制就会进入消息转发流程,否则程序 crash。也就是说如果同时提供了动态方法决议和消息转发,那么动态方法决议先于消息转发,只有当动态方法决议依然无法正确决议 selector 的实现,才会尝试进行消息转发。在前文中,我并没有详细讲解动态方法决议,因此本文将详细介绍之。 阅读全文
posted @ 2012-11-14 23:33 飘飘白云 阅读(7386) 评论(1) 推荐(2) 编辑
摘要: iOS 游戏开发教程资源,主要是 cocos2D 阅读全文
posted @ 2012-11-10 22:49 飘飘白云 阅读(1153) 评论(0) 推荐(1) 编辑
摘要: Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架。它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息。 可访问其官方网站:https://github.com/SignalR/ 获取更多资讯。 SignalR 的实现机制与 .NET WCF 或 Remoting 是相似的,都是使用远程代理来实现。在具体使用上,有两种不同目的的接口:PersistentConnection 和 Hubs,其中 PersistentConnection 是实现了长时间的 Javascript 轮询(类似于 Comet),Hub 是用来解决实时信息交换问题,它是利用 Javascript 动态载入执行方法实现的。SignalR 将整个连接,信息交换过程封装得非常漂亮,客户端与服务器端全部使用 JSON 来交换数据。 阅读全文
posted @ 2012-11-09 16:13 飘飘白云 阅读(11602) 评论(31) 推荐(12) 编辑
摘要: 在前一篇《[深入理解C++(一)]类型转换(Type Casting)》中,我详细讲述了 C++ 中转型动作,以及使用规则。有网友说应该提及下《深度探索 C++ 对象模型》一书中的内容,其实他的意思是,要是对 C++ 对象的内存布局不甚了解,就想要彻悟C++中的类型转型,对象切割,虚函数调用等,犹如脱离了坚实的根基,想去建空中阁楼。理解 C++ 对象的内存布局对学会 C++来说至关重要,但我不打算写 C++ 对象的内存布局相关的文章,因为要站在前人的肩膀上,大牛陈皓 已经就这个主题写了三篇图文并茂的文章: (一),C++ 虚函数表解析 (二),C++ 对象的内存布局(上) (三),C++ 对象的内存布局(下) 在继续阅读本文之前,建议先阅读这三篇文章,以更好地理解本系列文章。在接下来的内容中,我将从重载,重写,屏蔽等概念入手,引入众多接口继承规则。 阅读全文
posted @ 2012-11-06 21:50 飘飘白云 阅读(2152) 评论(2) 推荐(1) 编辑
摘要: 类型转换就是将给定类型的表达式转换为另一种类型。C++中的转型可分为两种:隐式类型转换和显式类型转换。下面将详细介绍这两种转型操作,以及各自的适用场景,潜在问题,最终将总结使用类型转换操作应牢记的原则。 阅读全文
posted @ 2012-10-28 21:54 飘飘白云 阅读(2224) 评论(1) 推荐(2) 编辑
摘要: 当 timeout = 0, 即 Sleep(0),如果线程调度器的可运行队列中有大于或等于当前线程优先级的就绪线程存在,操作系统会将当前线程从处理器上移除,调度其他优先级高的就绪线程运行;如果可运行队列中的没有就绪线程或所有就绪线程的优先级均低于当前线程优先级,那么当前线程会继续执行,就像没有调用 Sleep(0)一样。 当 timeout > 0 时,如:Sleep(1),会引发线程上下文切换:调用线程会从线程调度器的可运行队列中被移除一段时间,这个时间段约等于 timeout 所指定的时间长度。为什么说约等于呢?是因为睡眠时间单位为毫秒,这与系统的时间精度有关。通常情况下,系统的时间精度为 10 ms,那么指定任意少于 10 ms但大于 0 ms 的睡眠时间,均会向上求值为 10 ms。 阅读全文
posted @ 2012-10-11 20:08 飘飘白云 阅读(8168) 评论(8) 推荐(1) 编辑
摘要: 在WPF开发过程中碰到一个需求,要求保证窗口大小不变,即便是双击 titlebar 也不能改变窗口大小和位置。要实现这样的效果,需要执行如下步骤: 1,分别设置窗口的 Width/MaxWidth/MinWidth, Height/MaxHeight/MinHeight的为相同的值,设置窗口的 ResizeMode 为 NoResize,设置初始状态为 Normal; 2,让窗口响应 WindowStateChanged 事件:StateChanged="OnWindowStateChanged",响应函数如下: 阅读全文
posted @ 2012-09-13 16:55 飘飘白云 阅读(6371) 评论(0) 推荐(0) 编辑
摘要: WCF 机制确实不错,虽然谈不上对它有多了解,但仅从应用的角度看,有两个显著:封装通信,契约编程。下面演练一个Demo 来看看如何将 WCF 部署在IIS里头。这个 Demo 服务器提供一个运算服务,该运算服务是部署在IIS中,客户端根据服务器契约调用该服务,得到结果。 阅读全文
posted @ 2012-08-20 14:01 飘飘白云 阅读(3145) 评论(0) 推荐(0) 编辑
摘要: 今天发现 Log4Net 输出到不同数据库时,其 commandtext 使用的语法居然也不同,摸索了好一会,分享一下: 阅读全文
posted @ 2012-08-02 15:16 飘飘白云 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 经常在网上下载 word 文档,再转换为6寸PDF在 Kindle 上阅读,于是写了一个简单的转换器 KindleConverter,支持批量装换 word 文件。程序下载:点击下载。 正常运行本程序全部功能需要安装微软 .NET 4,以及Word 2003及以上版本。 阅读全文
posted @ 2012-06-20 16:20 飘飘白云 阅读(1612) 评论(1) 推荐(0) 编辑
摘要: 最近托张迪同学的福,重读了《高效能人士的七个习惯》这本书(请点击链接查看豆瓣介绍),2008年7月我曾在《高效能人士的7个习惯》这篇日志中推荐过此书,再次向大家推荐之。 这本售价不到12元的小书,绝对值得花一两包烟钱,一块面膜的钱买来阅读与收藏。 张迪同学曾经的公司给员工人手配备一本,让我很敬佩这家民营公司。如果用7个习惯的话来分析,这家公司的管理层正是在运用习惯四:双赢的思维在管理员工,员工自身成长了,自然不愁公司不成长。 阅读全文
posted @ 2012-06-17 11:13 飘飘白云 阅读(1124) 评论(7) 推荐(1) 编辑
摘要: BeforeFieldInit 与类静态构造函数 阅读全文
posted @ 2012-05-10 12:21 飘飘白云 阅读(1077) 评论(0) 推荐(0) 编辑
摘要: 使用 Open XML 操作文档模板自动生成报表:如何创建文档模板,通过编程方式修改模板内容,在这里只讲怎样修改文本和图片。 阅读全文
posted @ 2012-04-18 18:32 飘飘白云 阅读(9670) 评论(7) 推荐(8) 编辑
摘要: ASP.NET MVC 确实比以前的ASP编程模式 VIEW-BLL-DAL三层架构长进了不少,再加上Entity Framework利器,开发Web应用非常容易。要结合这两者,使用 Code First 模式非常好用,这样我们就非常方便在模型的字段上加上许多 System.ComponentModel.DataAnnotations 来对字段进行字段校验。但如果使用 Database First 模式,就稍微有点不那么方便了,但是办法还是有的,使用 partial 类是一种解法。partial 类对 EF 自动生成的 Entity 类进行了简单的封装,虽然这样有冗余,但为了能实现自动检验,也就容忍了。不知还有更好的办法没有,前提是不要修改 EF 自动生成的 Entity 类。 阅读全文
posted @ 2012-04-11 21:59 飘飘白云 阅读(1194) 评论(1) 推荐(0) 编辑
摘要: 今天在使用 Entity Framework 处理并发冲突时,碰到一个奇怪的BUG:DBContext 实例和 Model entity 不在同一个命名空间下,Entity Framework 4.1 中的 GetDatabaseValues()就会抛出异常。经查证,这是 Entity Framework 4.1 的一个BUG。本文列出两种解决方案。 阅读全文
posted @ 2012-04-07 11:12 飘飘白云 阅读(1521) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 10 下一页
本博客遵循 Creative Commons License “署名-非商业用途-保持一致”创作共用协议。 与我联系