Fork me on GitHub
上一页 1 ··· 100 101 102 103 104 105 106 107 108 ··· 125 下一页

2012年2月12日

摘要: 导语:数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序。一起来了解了解吧。使用明确、统一的标明和列名,例如 School, SchoolCourse, CourceID。数据表名使用单数而不是复数,例如 StudentCourse,而不是StudentCourses。数据表名不要使用空格。数据表名不要使用不必要的前缀或者后缀,例如使用School,而不是TblScho 阅读全文
posted @ 2012-02-12 07:12 pengyingh 阅读(124) 评论(0) 推荐(0)
摘要: Category是ObjC语言中的扩展机制之一,另一个为Protocol。Category提供一种为某个类添加方法而又不必编写子类的途径。假设有这样一个类CarInfo:#import <Foundation/Foundation.h> @interface CarInfo : NSObject { } -(void)sayCarBrand; @end @implementation CarInfo -(void) sayCarBrand{ NSLog(@"Car brand: Golf"); } @end我可以用Ca... 阅读全文
posted @ 2012-02-12 07:11 pengyingh 阅读(191) 评论(0) 推荐(0)

2012年2月11日

摘要: 所有设计良好的子类都有一些共同的特征,不管它继承自什么类、作用是什么。设计不好的子类容易出现错误、不好用、难于扩展、以及性能不好,而设计良好的子类则恰恰相反。本文将为设计高效、强壮、既易于使用又可以重用的子类提供一些建议。进一步阅读:虽然这篇文档也描述一些制作子类的技巧,但主要还是关注基本设计。文中没有描述如何使用Xcode和Interface Builder开发工具来自动化类定义的部分工作。如果要学习使用这些工具。这个部分描述的设计信息特别适用于模型对象。本部分包含如下主要内容:子类定义的形式重载超类的方法实例变量入口和出口点初始化还是解码?存取方法键-值机制对象的基础设施错误处理资源管理和 阅读全文
posted @ 2012-02-11 09:00 pengyingh 阅读(799) 评论(0) 推荐(0)
摘要: 象Application Kit这样的框架都定义某种程序模型。由于这个模型具有一般性,很多不同类型的应用程序都可以共享。也由于这个模型具有一般性,框架中的某些类是抽象类或有意没有完成也并不奇怪。一个类通常会完成很多低级别的、公用的代码,而将工作的相当一部分留下来,或者以安全而又一般的“缺省”方式来完成。应用程序通常需要创建子类来填充超类留下的缺口,提供框架类缺少的东西。子类是向框架添加具体应用程序行为的基本途径。定制子类的实例在框架定义的对象网络中代替其超类的位置,并通过继承从超类得到与框架中其它对象协同工作的能力。举例来说,如果您创建了一个NSCell的子类,则这个新类的实例可以出现在NSM 阅读全文
posted @ 2012-02-11 08:34 pengyingh 阅读(505) 评论(0) 推荐(0)
摘要: 委托是一种对象,当向外委托任务的对象遇到程序中的事件时,它的委托可以代表它对事件进行处理,或者和它进行协调。向外委托任务的对象通常是一个响应者对象—即继承自NSResponder的对象—负责响应用户事件。委托则是受托进行事件的用户界面控制,或者至少根据应用程序的具体需要对事件进行解释的对象。为了更好地理解委托的价值,让我们考虑一个复活的Cocoa对象,比如一个窗口(NSWindow的实例)或者表视图(NSTableView的实例)。这些对象的设计目的是以一般的方式实现一个具体的角色;举例来说,窗口对象负责响应窗口控件的鼠标操作,处理象关闭窗口、调整尺寸、以及移动窗口的位置这样的事件;这个受限而 阅读全文
posted @ 2012-02-11 08:15 pengyingh 阅读(700) 评论(0) 推荐(0)
摘要: 在对象间传递信息的标准方法是消息传递-即一个对象调用另一个对象的方法。然而,消息传递要求发送消息的对象知道消息的接收者,以及它可以响应什么消息。这个要求对于委托消息和其它类型的消息是可以的。有些时候,我们不希望两个对象之间具有这种紧密的耦合-特别值得注意的原因是它会把本来独立的子系统联结在一起。而且这种要求也是不切实际的,因为它需要把应用程序中很多全然不同的对象之间建立硬编码的连接。对于不能使用标准的消息传递的场合,Cocoa提供了通告广播模型。通过通告机制,一个对象可以通知其它对象自己正在干什么。在这个意义上,通告机制类似于委托,但是它们之间的区别是很重要的。委托和通告的关键区别在于前者是一 阅读全文
posted @ 2012-02-11 08:14 pengyingh 阅读(1301) 评论(0) 推荐(0)
摘要: Cocoa框架是什么因素使一个程序成为Cocoa程序呢?肯定不是编程语言,因为在Cocoa开发中您可以使用各种语言;也不是开发工具,因为您在命令行上就可以创建Cocoa程序(虽然那会使开发过程变得复杂,且需要消耗大量时间)。那么,所有Cocoa程序的共同点是什么?是什么使它们变得与众不同?答案是这些程序都是由一些对象组成,而这些对象最终都是从NSObject这个根类继承下来的;还有,这些程序都是基于Objective-C运行环境的。这个说法对于所有的Cocoa框架来说也是正确的。请注意:上面的说法还需要做一点限制。首先,Cocoa还有另一个根类,即NSProxy。只是NSProxy很少用于Co 阅读全文
posted @ 2012-02-11 07:59 pengyingh 阅读(8409) 评论(0) 推荐(1)
摘要: 在Cocoa中到处都可以找到设计模式的应用,基于模式的机制或架构在Cocoa框架和Objective-C运行环境及语言中是很常见的。Cocoa经常把自己与众不同的工作机制建立在模式上,它的设计受到诸如语言能力或现有架构这样因素的影响。本部分包含设计模式:可重用的面向对象软件的元素一书中编目的大多数设计模式的介绍。每个设计模式都有一个总结性的描述,以及该模式的Cocoa实现的讨论。文中列出的都是Cocoa实现的模式,每个模式的讨论都发生在特定的Cocoa环境中。我们推荐您熟悉这些模式,您会发现这些模式在Cocoa软件开发中非常有用。Cocoa中设计模式的实现有不同的形式。下面部分中描述的一些设计 阅读全文
posted @ 2012-02-11 07:54 pengyingh 阅读(5872) 评论(0) 推荐(3)
摘要: 深度解析iPhoneCategory用法是本文要介绍的内容,在开发3.0的iPhone静态库的时候,遇到了一些问题。尽管我在应用程序链接的选项里头使用-ObjC的选项,我的程序在iPhone上运行时还是Crash了,而且经过定位之后发现,还是由库中的Category相关方法没有被链入导致的;而程序在模拟器上运行却是一点问题没有,Category的相关方法都能正确得到执行。 那么到底是什么原因导致在真机上应用程序没有将Category方法链入呢?答案还是在上次提到的这个苹果官方网页。该网页下方的IMPORTANT里头提到,在64位及iPhoneOS系统里,由于编译器的Bug导致了-ObjC选项. 阅读全文
posted @ 2012-02-11 07:53 pengyingh 阅读(406) 评论(0) 推荐(0)
摘要: [NSException raise:NSRangeException format:@"***%s: index(%d) beyond bounds (%d)", sel_getName(_cmd), index,[self count] - 1]; 阅读全文
posted @ 2012-02-11 07:40 pengyingh 阅读(175) 评论(0) 推荐(0)
上一页 1 ··· 100 101 102 103 104 105 106 107 108 ··· 125 下一页

导航