文章分类 -  objective-C基础学习

摘要:http://blog.csdn.net/itianyi/article/details/8618128在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如:@interface MyViewController :UIViewController{UIButton *myButton;}@property (nonatomic, retain) UIButton *myButton;@end最近,苹果将默认编译器从GCC转换为LLVM(low level virtual machine),从此不再需要为属性 阅读全文
posted @ 2014-03-19 11:05 六界剑仙 阅读(129) 评论(0) 推荐(0)
摘要:http://qwjcool.iteye.com/blog/265251Cocoa是Mac OS和iPhone OS上的开发框架,使用Objective-C做为开发语言。当然,在代码中也可以嵌入C和C++的语句。初识Objective-C时会觉得它的语法很奇怪,但本质上和其他面向对象语言都差不多。具体语法大家可以参考相关文档。在Cocoa框架中:所有的控件、窗口等都继承自 UIView,对应MVC中的 V。UIView及其子类主要负责UI的实现,而UIView所产生的事件都可以采用委托的方式,交给UIViewController实现。对于不同的UIView,都有相应的UIViewControl 阅读全文
posted @ 2013-02-28 22:56 六界剑仙 阅读(120) 评论(0) 推荐(0)
摘要:http://blog.sina.com.cn/s/blog_a7c44c880101agmf.htmlUIView的基础知识Cocoa的MVC架构分析在Cocoa框架中:所有的控件、窗口等都继承自 UIView,对应MVC中的 V。UIView及其子类主要负责UI的实现,而UIView所产生的事件都可以采用委托的方式,交给UIViewController实现。对于不同的UIView,都有相应的UIViewController 对应MVC中的C。比如在iPhone OS上常用的UITableView,它所对应的Controller就是UITableViewController。至于MVC中的M 阅读全文
posted @ 2013-02-19 10:47 六界剑仙 阅读(268) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/horse20000/article/details/7535675自动释放(Auto release)与便捷方法(convenience method)—– 有时候一个所有者创建一个对象后,会立刻将该对象的指针传递给其它所有者。这时,这个创建者不希望再拥有这个对象,但如果立刻给它发送一个release消息会导致这个对象被立刻释放掉——这样其它所有者还没有来得及保留该对象。解决这个两难问题的方法是,给对象发送一个autorelease消息:这样创建者不再拥有该对象的所有权;该对象成为自动释放的对象,但是不会立刻被释放掉;其它所有者可以有时间保留或复制该 阅读全文
posted @ 2013-01-25 10:37 六界剑仙 阅读(113) 评论(0) 推荐(0)
摘要:1、垃圾回收机制(GC)垃圾回收机制是杀那些优先级很低的程序,包括已经关掉有残留的。。GC如其名,就是垃圾收集,当然这里仅就内存而言。Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root为基础,遍历应用程序在Heap上动态分配的所有对象[2],通过识别它们是否被引用来确定哪些对象是已经死亡的、哪些仍需要被使用。已经不再被应用程序的root或者别的对象所引用的对象就是已经死亡的对象,即所谓的垃圾,需要被回收。这就是GC工作的原理。为了实现这个原理,GC有多种算法。比较常见的算法有Reference Counting,Mark Sweep,Copy 阅读全文
posted @ 2013-01-25 10:06 六界剑仙 阅读(166) 评论(0) 推荐(0)
摘要:虽然ARC引入之后NSAutoReleasePool的使用有了很大变化,但是了解NSAutoReleasePool的机制还是十分必要的,下面主要说一下:NSAutoReleasePool * pool = [NSAutoReleasePool alloc] init];//do something之后,[pool drain] 和 [pool release] 的区别:release,在引用计数环境下,由于NSAutoReleasePool是一个不可以被retain的类型,所以release会直接dealloc pool对象。当pool被dealloc的时候,pool向所有在pool中的对.. 阅读全文
posted @ 2013-01-25 09:47 六界剑仙 阅读(102) 评论(0) 推荐(0)
摘要:http://blog.sina.com.cn/s/blog_6297d52d01010fuv.html本文实现AView中点击切换到BView,BView中点击又切换回AView中,并把Bview删除或隐藏,这样的一个实例,来看内容。AD:Objective-C代理方案是本文要介绍的内容。通过一个ViewController控制着AView和BView,这样的一个实例来介绍内容,我们先来看详细内容。现在要实现:AView中点击切换到BView,BView中点击又切换回AView中,并把Bview删除或隐藏。由于对模式不是很清楚,所以没想到用什么模式处理,如果有什么好的模式可以解决上述问题,希 阅读全文
posted @ 2013-01-24 16:22 六界剑仙 阅读(195) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/dong_007_007/article/details/7718860IOS开发使用委托delegate在不同窗口之间传递数据是本文要介绍的内容,主要是来讲解如何使用委托delegate在不同窗口之间传递数据,具体内容来看详细内容。在IOS开发里两个UIView窗口之间传递参数方法有很多,比如1、使用SharedApplication,定义一个变量来传递.2、使用文件,或者NSUserdefault来传递3、通过一个单例的class来传递4、通过Delegate来传递。前面3种方法,暂且不说,这次主要学习如何使用通过Delegate的方法来在不同的U 阅读全文
posted @ 2013-01-24 14:36 六界剑仙 阅读(96) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/dong_007_007/article/details/7722196strong weakstrong与weak是由ARC新引入的对象变量属性ARC引入了新的对象的新生命周期限定,即零弱引用。如果零弱引用指向的对象被deallocated的话,零弱引用的对象会被自动设置为nil。@property(strong) MyClass *myObject;相当于@property(retain) MyClass *myObject;@property(weak) MyOtherClass *delegate;相当于@property(assign) My 阅读全文
posted @ 2013-01-24 14:32 六界剑仙 阅读(146) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/mybkn/archive/2012/03/08/2384860.htmlstrong关键字与retain关似,用了它,引用计数自动+1,用实例更能说明一切@property(nonatomic,strong)NSString*string1; @property(nonatomic,strong)NSString*string2; 有这样两个属性,@synthesizestring1; @synthesizestring2; 猜一下下面代码将输出什么结果?self.string1=@"String1"; self.string 阅读全文
posted @ 2013-01-24 14:12 六界剑仙 阅读(128) 评论(0) 推荐(0)
摘要:http://fei263.blog.163.com/blog/static/927937242013023111354660/?latestBlogObjective- C在计算机编程语言中有悠久的历史,80年代初Brad Cox和Tom Love发明了Objective-C,1988年乔布斯的Next公司获得了这门编程语言语言的授权,并开发出了Objective-C的语言库和 NEXTSTEP的开发环境。NextStep是以Mach和BSD为基础,Objective-C是其语言和运行库。乔布斯回归苹果,NextStep 成了Max OS X的基础,Objective-C成了Apple的当家 阅读全文
posted @ 2013-01-24 10:58 六界剑仙 阅读(165) 评论(0) 推荐(0)
摘要:http://fei263.blog.163.com/blog/static/92793724201222744734747/atomic:原子操作(原子性是指事务的一个完整操作,操作成功就提交,反之就回滚. 原子操作就是指具有原子性的操作)在objective-c 属性设置里面默认的就是atomic,意思就是setter/getter函数是一个原子操作,如果多线程同时调用setter时,不会出现某一个线程执行完setter所有语句之前,另一个线程就开始执行setter,相当于函数头尾加了锁. 这样的话并发访问性能会比较低.nonatomic: 非原子操作 一般不需要多线程支持的时候就用它,这 阅读全文
posted @ 2013-01-24 10:38 六界剑仙 阅读(119) 评论(0) 推荐(0)
摘要:objective-C特性:动态绑定在多数面向对象的编程语言中,调用方法是由直接调用内存中一段固定的代码实现的。由于这种方法需要预定义的处理命令的类,因而限制了程序的设计,通常采用责任链模式作为其设计模式。虽然Cocoa在多数地方仍然采用这种方式,但通过Objective-C的动态绑定特性增加了更多设计的自由性。在Objective-C中,消息由selector所代表,其为描述需要调用的方法的一个字符串。在发送消息时,该selector被送入Objective-C运行时中,在可用方法列表中寻找对应的方法,然后调用该方法的实际实现。由于selector只是文本数据,因此它可以保存在文件中,通过网 阅读全文
posted @ 2013-01-21 11:00 六界剑仙 阅读(179) 评论(0) 推荐(0)
摘要:何时使用self.在网上搜索或者论坛里的回复大多都是简简单单的说这与objc的存取方法有关,如何与存取方式有关究竟他们之间的是什么样的关系就很少有同学回答了。原文来自:OSChina今天新同事问了一些关于什么时候用全局变量,什么时候用self.赋值的问题,所以笔者在此说明一下。何时使用self.在网上搜索或者论坛里的回复大多都是简简单单的说这与objc的存取方法有关,如何与存取方式有关究竟他们之间的是什么样的关系就很少有同学回答了。下面以代码来说明问题:创建一个Student类,继承NSObject类,代码:01#import <Foundation/Foundation.h>02 阅读全文
posted @ 2013-01-16 14:03 六界剑仙 阅读(146) 评论(0) 推荐(0)
摘要:nib2objc 是一个小巧的转换工具,可以将 XIB 文件自动转换为 Objective-C 的源代码文件。 通常,考虑到程序的效率时,才将XIB直接转换为源代码文件。但是这样一来,通过Interface Builder设定nib2objc是一个小巧的转换工具,可以将 XIB 文件自动转换为 Objective-C 的源代码文件。 通常,考虑到程序的效率时,才将XIB直接转换为源代码文件。但是这样一来,通过Interface Builder设定的实例变量与行为方法的接续也没有了,需要从新手写。但是,该工具的源代码是公开的,稍加修饰,就能完成大部分工作。 使用的时候,首先下载的工程代码并用XC 阅读全文
posted @ 2013-01-16 11:02 六界剑仙 阅读(294) 评论(0) 推荐(0)
摘要:在 Objective-C 中的类实现中经常看到这两个关键字 self 和 super,以以前 oop 语言的经验,拿 c++ 为例,self 相当于 this,super 相当于调用父类的方法,这么看起来是很容易理解的。以下面的 在 Objective-C 中的类实现中经常看到这两个关键字 ”self” 和 ”super”,以以前 oop 语言的经验,拿 c++ 为例,self 相当于 this,super 相当于调用父类的方法,这么看起来是很容易理解的。以下面的代码为例:@interface Person:NSObject { NSString* name;}- (void) setNam 阅读全文
posted @ 2013-01-16 10:58 六界剑仙 阅读(89) 评论(0) 推荐(0)
摘要:Objective-c语言在申请对象的时,需要使用两段构造(Two Stage Creation)的模式。一个对象的创建,需要先调用alloc方法或allocWithZone方法,再调用init方法或initWithSomething方法。如下是一个NSStri来自会员tangqiaoboy的分享:作者博客http://blog.devtang.com/blog/2013/01/13/two-stage-creation-on-cocoa/前言Objective-c语言在申请对象的时,需要使用两段构造(Two Stage Creation)的模式。一个对象的创建,需要先调用alloc方法或al 阅读全文
posted @ 2013-01-16 09:33 六界剑仙 阅读(134) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/tskyfree/article/details/7984887一、Objective-C多态1.概念:相同接口,不同的实现来自不同类可以定义共享相同名称的方法。动态类型能使程序直到执行时才确定对象所属类型动态类型绑定能使程序直到执行时才确定要对对象调用的实际方法2.Objective-C不同于传统程序设计语言,它可以再运行时加入新的数据类型和新的程序模块:动态类型识别,动态绑定,动态加载3.id类型:通用指针类型,弱类型,编译时不进行类型检查二、动态类型识别1.任意NSObject的子类都会继承NSObject的isa实例变量,而且当NSObject 阅读全文
posted @ 2013-01-15 11:18 六界剑仙 阅读(91) 评论(0) 推荐(0)
摘要:Objective-C有3个动态特性1,动态类型Dynamic typing—determining the class of an object at runtime运行时决定对象类型2,动态绑定Dynamic binding—determining the method to invoke at runtime运行时决定方法调用3,动态加载Dynamic loading—adding new modules to a program at runtime运行时加载新模块如何理解Objective-C的3这个动态特性呢?首先,动态类型,简单点说就是id 类型,可以理解为通用对象类型,一旦被赋 阅读全文
posted @ 2013-01-15 11:16 六界剑仙 阅读(160) 评论(0) 推荐(0)
摘要:objective-c字符串查找并删除#import <Foundation/NSString.h>#import <Foundation/NSAutoreleasePool.h>int main (int argc, const char * argv[]) {NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];NSString *str1 = @"This is a example.";NSMutableString *mstr = [[NSMutableString alloc 阅读全文
posted @ 2013-01-09 16:36 六界剑仙 阅读(183) 评论(0) 推荐(0)