02 2012 档案

摘要:http://wenku.baidu.com/view/7dc4ba6aa98271fe910ef9d5.htmlhttp://www.1000phone.net/thread-6888-1-1.html 阅读全文
posted @ 2012-02-27 18:24 Piosa 阅读(184) 评论(0) 推荐(0)
摘要:http://www.cocoachina.com/bbs/read.php?tid=39466http://blog.csdn.net/steve1018/article/details/6902973http://blog.csdn.net/dongfengsun/article/details/4840224http://www.cnblogs.com/speeding/archive/2011/09/29/2195252.html 阅读全文
posted @ 2012-02-24 18:32 Piosa 阅读(176) 评论(0) 推荐(0)
摘要:首先看两个runloop的示例,来源:http://paste.lisp.org/display/86524第一个:#include<CoreFoundation/CoreFoundation.h>staticvoid_perform(void*info__unused){printf("hello\n");}staticvoid_timer(CFRunLoopTimerReftimer__unused,void*info){CFRunLoopSourceSignal(info);}intmain(){CFRunLoopSourceRefsource;CFRun 阅读全文
posted @ 2012-02-23 18:19 Piosa 阅读(736) 评论(0) 推荐(0)
摘要:当程序接到内存警告时View Controller将会收到这个消息:didReceiveMemoryWarning从iOS3.0开始,不需要重载这个函数,把释放内存的代码放到viewDidUnload中去。这个函数的默认实现是:检查controller是否可以安全地释放它的view(这里加粗的view指的是controller的view属性),比如view本身没有superview并且可以被很容易地重建(从nib或者loadView函数)。如果view可以被释放,那么这个函数释放view并调用viewDidUnload。你可以重载这个函数来释放controller中使用的其他内存。但要记得调用 阅读全文
posted @ 2012-02-22 15:57 Piosa 阅读(5128) 评论(0) 推荐(0)
摘要:理解view的生命周期:在UIViewController中,view(黑体的view指的是controller的view属性)有两个循环:加载和卸载循环。当程序的一部分向controller请求view的指针且view不在内存中时,view会进入加载循环,controller会将view加载入内存。当程序接收到内存警告时,controller会尝试卸载view,在卸载循环中,controller尝试释放它的view对象并返回到原始的无view状态(当它不在屏幕上显示时,这个条件的判断到底是根据view的结构来还是根据用户视觉来,我尚不清楚),直到view下次被请求。在加载卸载循环中,cont 阅读全文
posted @ 2012-02-22 15:45 Piosa 阅读(6636) 评论(1) 推荐(3)
摘要:- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { // Override point for customization after application launch. RootViewController*rootController=[[RootViewControlleralloc]init]; rootController.title=@"Root"; navController= [[UINav 阅读全文
posted @ 2012-02-22 15:36 Piosa 阅读(832) 评论(0) 推荐(0)
摘要:1.main(){int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}答:2,5*(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5 &a+1不是首地址+1,系统会认为加一个a数组的偏 移,是偏移了一个数组的大小(本例是5个int) int *ptr=(int *)(&a+1); 则ptr实际 是&(a[5]),也就是a+5原因如下: &a是数组指针,其类型为 int (*)[5]; 而 指针加1要根据指针类型加上 阅读全文
posted @ 2012-02-22 15:32 Piosa 阅读(6539) 评论(0) 推荐(2)
摘要: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 阅读(460) 评论(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 阅读(2873) 评论(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 阅读(4529) 评论(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 阅读(2075) 评论(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 阅读(758) 评论(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 阅读(391) 评论(0) 推荐(0)
摘要:为了将定制的应用程序偏好设置集成到Settings程序中,您必须在应用程序包的顶级目录中包含一个特殊格式的Settings程序包,由它负责将应用程序的偏好设置信息提供给Settings程序,而Settings程序则负责对其进行显示,并将用户提供的值写入偏好设置数据库。偏好设置的指导原则将偏好设置加入到Settings程序的做法最适合于效率工具类型的应用程序,以及偏好设置值配置完成后很少再改变的程序。请注意:永远不要使偏好设置同时存在于Setting程序和自定义的应用程序屏幕上。举例来说,如果工具类应用程序在主视图的背面有偏好设置,则在Settings程序中就不应该再有可配置的设置。如果您的应用 阅读全文
posted @ 2012-02-15 18:33 Piosa 阅读(1168) 评论(0) 推荐(0)
摘要:文件和数据管理Phone OS系统上的文件和用户的媒体数据及个人文件共享闪存上的空间。出于安全的目的,您的应用程序被放在其自己的目录下,并且只能对该目录进行读写。 常用目录出于安全的目的,应用程序只能将自己的数据和偏好设置写入到几个特定的位置上。当应用程序被安装到设备上时,系统会为其创建一个家目录。<Application_Home>/AppName.app 这是程序包目录,包含应用程序的本身。<Application_Home>/Documents/ 您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。iTunes会备份这 阅读全文
posted @ 2012-02-15 17:23 Piosa 阅读(1396) 评论(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 阅读(6288) 评论(1) 推荐(1)
摘要:通过对键盘事件的响应,让控件不被遮挡。通过下面第一个方法添加监听,当键盘显示和隐藏的时候会分别调用下面第二和第三个方法,对于界面的定制就写在第二跟第三个方法中。-(void)registerForKeyboardNotifications{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification ... 阅读全文
posted @ 2012-02-14 10:13 Piosa 阅读(649) 评论(0) 推荐(0)
摘要:关于文本和Web的支持文本视图UIKit框架提供三个显示文本内容的基本类:UILabel显示静态文本字符串UITextField显示单行可编辑文本UITextView显示多行可编辑文本虽然标签和文本编辑框通常用于显示相对少量的文本,但实际上这些类可以显示任意数量的文本。在使用可编辑的文本视图时,您必须提供一个委托对象,负责管理编辑会话。文本视图会向委托对象发送几个不同的通告,让它知道编辑何时开始,何时结束,并使它有机会重载某些编辑动作。Web视图除了显示内容,您还可以用web视图对象来显示web表单,收集用户输入。和UIKit的其它文本类相似,如果您在web页面的表单中有可编辑的文本框,则轻触 阅读全文
posted @ 2012-02-14 00:36 Piosa 阅读(837) 评论(0) 推荐(0)
摘要:iPhone OS为创建高质量的图形提供两种路径:即通过OpenGL进行渲染,或者通过Quartz、Core Animation、和UIKit进行渲染。UIKit的图形系统在iPhone OS上,所有的描画—无论是否采用OpenGL、Quartz、UIKit、或者Core Animation—都发生在UIView对象的区域内。视图定义描画发生的屏幕区域。如果您使用系统提供的视图,描画工作会自动得到处理;然而,如果您定义自己的定制视图,则必须自行提供描画代码。对于使用OpenGL进行描画的应用程序,一旦建立了渲染表面,就必须使用OpenGL指定的描画模型。视图描画周期UIView对象的基本描画模 阅读全文
posted @ 2012-02-13 18:37 Piosa 阅读(888) 评论(0) 推荐(1)
摘要:在自定义的UIView子类中,需要实现canBecomeFirstResponder方法,并返回YES(默认返回FALSE),才可使becomeFirstResponder可返回YES,才可使其成为第一响应者,即接受第一响应者状态。一个响应者只有当当前响应者可以取消第一响应者状态(canResignFirstResponder) 并且新的响应者可以成为第一响应者时,才可以成为第一响应者。 阅读全文
posted @ 2012-02-13 17:18 Piosa 阅读(5071) 评论(0) 推荐(0)
摘要:iPhone OS支持两种类型的事件:即触摸事件或运动事件。在iPhone OS 3.0中,UIEvent类已经被扩展为不仅可以包含触摸事件和运动事件,还可以容纳将来可能引入的其它事件类型。每个事件都有一个与之关联的事件类型和子类型,可以通过UIEvent的type和subtype属性声明进行访问,类型既包括触摸事件,也包括运动事件。在iPhone OS 3.0上,子类型只有一种,即摇摆-运动子类型(UIEventSubtypeMotionShake)。触摸事件Phone OS中的触摸事件基于多点触摸模型。iPhone OS将一个或多个和屏幕接触的手指识别为多点触摸序列的一部分,该序列从第一个 阅读全文
posted @ 2012-02-10 16:16 Piosa 阅读(2774) 评论(0) 推荐(0)
摘要:窗口和视图窗口为内容显示提供背景平台,而视图负责绝大部分的内容描画,并负责响应用户的交互。什么是窗口和视图?UIWindow的作用iPhone应用程序通常只有一个窗口,表示为一个UIWindow类的实例。您的应用程序在启动时创建这个窗口(或者从nib文件进行装载),并往窗口中加入一或多个视图,然后将它显示出来。窗口显示出来之后,您很少需要再次引用它。iPhone应用程序通常只有一个窗口,表示为一个UIWindow类的实例。您的应用程序在启动时创建这个窗口(或者从nib文件进行装载),并往窗口中加入一或多个视图,然后将它显示出来。窗口显示出来之后,您很少需要再次引用它。在iPhone OS中,U 阅读全文
posted @ 2012-02-06 00:34 Piosa 阅读(1809) 评论(0) 推荐(0)