摘要: 1 : 如果无法保证子类行为的一致性,那么就用委托If the subClass can't keep with superClass,use delegate rather than inheritance.2: 屏 幕上看到的,都是 UIVewEverything you see on Screen is UIView.3: 如 果对性能要求高,慎用 Interface Build(Xcode 4.2.1已经变了,冒似没有Interface Builder的概念了)if application's performance is important,be discreet f 阅读全文
posted @ 2012-02-22 15:23 Piosa 阅读(439) 评论(0) 推荐(1) 编辑
摘要: loadView,viewDidLoad,viewDidUnload,这三个函数到底应该怎么用?谷歌一下,全是转载,大概内容是这样:loadView 手动加载viewviewDidLoad用于nib文件加载后,进一步处理viewDidUnload是viewDidLoad的镜像参考官方文档,我给出纠正:一、loadView永远不要主动调用这个函数。view controller会在view的property被请求并且当前view值为nil时调用这个函数。如果你手动创建view,你应该重载这个函数。如果你用IB创建view并初始化view controller,那就意味着你使用initWithNi 阅读全文
posted @ 2012-02-22 14:59 Piosa 阅读(2861) 评论(0) 推荐(2) 编辑
摘要: strong与weak是由ARC新引入的对象变量属性ARC引入了新的对象的新生命周期限定,即零弱引用。如果零弱引用指向的对象被deallocated的话,零弱引用的对象会被自动设置为nil。@property(strong) MyClass *myObject;相当于@property(retain) MyClass *myObject;@property(weak) MyOtherClass *delegate;相当于@property(assign) MyOtherClass *delegate;强引用与弱引用的广义区别:强引用也就是我们通常所讲的引用,其存亡直接决定了所指对象的存亡。如果 阅读全文
posted @ 2012-02-17 18:27 Piosa 阅读(4504) 评论(0) 推荐(0) 编辑
摘要: (id)init {// 先讓父類別進行初始化if (self = [super init]) {// do something}return self;}if(self=[super init]) 首先的是[super init],使超类完成自己的初始化工作。if(self=[super init])这条语句的意思,[super init]是初始化父类中的变量方法,self=[super init]就相当于子类也初始化了这些变量和方法,而用if判断下,是为了防止self为空的情况,即创建失败的情况。self被指定为返回值,这个返回值通过self =[super init]中发送给super对 阅读全文
posted @ 2012-02-17 15:52 Piosa 阅读(2047) 评论(1) 推荐(0) 编辑
摘要: 在objc中的类实现中经常看到这两个关键字”self”和”super”,以以前oop语言的经验,拿c++为例,self相当于this,super相当于调用父类的方法,这么看起来是很容易理解的。以下面的代码为例:?12345678910111213141516171819202122232425262728@interface Person:NSObject {NSString* name;}- (void) setName:(NSString*) yourName;@end@interface PersonMe:Person {NSUInteger age;}- (void) setAge:( 阅读全文
posted @ 2012-02-17 15:02 Piosa 阅读(731) 评论(0) 推荐(0) 编辑
摘要: Click on theSettings.bundlefile in the left window -> From main menu choose View -> Utilities -> Show FileInspector. Then change fileType to "applicationBundle" = the two missing files will show again under theSettings.bundle. 阅读全文
posted @ 2012-02-16 10:15 Piosa 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 为了将定制的应用程序偏好设置集成到Settings程序中,您必须在应用程序包的顶级目录中包含一个特殊格式的Settings程序包,由它负责将应用程序的偏好设置信息提供给Settings程序,而Settings程序则负责对其进行显示,并将用户提供的值写入偏好设置数据库。偏好设置的指导原则将偏好设置加入到Settings程序的做法最适合于效率工具类型的应用程序,以及偏好设置值配置完成后很少再改变的程序。请注意:永远不要使偏好设置同时存在于Setting程序和自定义的应用程序屏幕上。举例来说,如果工具类应用程序在主视图的背面有偏好设置,则在Settings程序中就不应该再有可配置的设置。如果您的应用 阅读全文
posted @ 2012-02-15 18:33 Piosa 阅读(1131) 评论(0) 推荐(0) 编辑
摘要: 文件和数据管理Phone OS系统上的文件和用户的媒体数据及个人文件共享闪存上的空间。出于安全的目的,您的应用程序被放在其自己的目录下,并且只能对该目录进行读写。 常用目录出于安全的目的,应用程序只能将自己的数据和偏好设置写入到几个特定的位置上。当应用程序被安装到设备上时,系统会为其创建一个家目录。<Application_Home>/AppName.app 这是程序包目录,包含应用程序的本身。<Application_Home>/Documents/ 您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。iTunes会备份这 阅读全文
posted @ 2012-02-15 17:23 Piosa 阅读(1359) 评论(0) 推荐(1) 编辑
摘要: 为了进行UI自定义,修改了UITableViewCell的accessoryView,如下UIButton * accessoryDetailDisclosureButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];[accessoryDetailDisclosureButton setImage:[UIImage imageNamed:@"accessoryDetailDisclosureButton_normal.png"] forState:UIControlStateNormal];[a 阅读全文
posted @ 2012-02-15 10:00 Piosa 阅读(6265) 评论(1) 推荐(1) 编辑
摘要: 通过对键盘事件的响应,让控件不被遮挡。通过下面第一个方法添加监听,当键盘显示和隐藏的时候会分别调用下面第二和第三个方法,对于界面的定制就写在第二跟第三个方法中。-(void)registerForKeyboardNotifications{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification ... 阅读全文
posted @ 2012-02-14 10:13 Piosa 阅读(641) 评论(0) 推荐(0) 编辑