Objective C - 基础:

1,内存包括五部分:


运算器,控制器,存储器,输入,输出-----前两者就是(CPU),cpu处理的数据放在内存

       当中

内存:(主储(内存):掉电丢失数据,硬盘不会),硬盘速度要比内存慢的多


2,NSLog:可以打印一些时间信息,以及进程号,还在最后自动加入--换号,而printf不会

   的


3,import:可以避头文件---重复引用,@class可以避免头文件---交叉引用


4,类是一批事物的抽象,而对象是一个特指,实实在在的一个具体的事物,对象必定属于某

  一个类,对象就是实例。


5,成员方法加载时间短,类方法加载时间长,如果一个方法经常使用可以设置成为一个类方法,成员方法是动态的运行时调用,

   类方法是随时的。


6,单例模式---字面意思就是单个实例,用来保证系统中只有一个对象,节省资源,共享同一个资源,


7,oc面向对象的思想,三在特征,其中多态用的比较少,里氏替换原则


8,使用@class防止头文件交叉编译,其实交叉编译出错是进入了死锁,相互等待些编译。


9,NSString* str1 = @"这是一个字符串",//str1保存在堆中的字符串常量池

  NSString* str2 = [NSString stringwithformat:@"hello"]//str2保存在一般的堆空间


10,字符集:(UTF8,GB2312,ASCII,ISO-8859-1)都兼容ASCII(0到255(2的8次方))

   GB2312(0到65535(2的16次方))

   GB18030(兼容GB2312和GBK)

   ISO-8859-1: 国际化统一编码(unicode)

   UTF8:Unicode Transform Format 8,使用unicode编码


11,按位取反:如:~5,第一步求原码:                      0000 0101

             第二步取反:                         1111 1010 ,高位是“1”,证明是个负数

          第三步 补码取反再加“1”,符号位不动       1000 0101 + 1

          第四步出结果                         1000 0110 = -6


12,下标一般从零开始原因:零表示偏移量,第一个元素的偏移量为零,所以下标为零。


13,字典中的数据存放,只是按键值,不是按存放的顺序取的。。。。。。。。。


14,如果关心位置,按照一定的顺序,那么就用NSArray,否则就用NSDictionary


15,如果key值重复,那么显示最前面的key值


16,ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了

    retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。

    该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过指定的  

    语法,让编译器(LLVM 3.0)在编译代码时,自动生成实例的引用计数管理部分代码。有一点,ARC并不是GC,它只是一种

    代码静态分析(Static Analyzer)工具。在ARC中不再可以调用rlease/autorelease和dealloc等关键字了,系统自动执行了该操作



17,代码块可以当作参数去传


18,@property,@synthesize

     4.3 都得有(成员变量,@property,@synthesize)

     5.0 (成员变量可以省略)

     6.0 (成员变量 和 @synthesize 都可以省略)


     在6.0的情况下:(name)

          如果不写@synthesize那么默认生成_name,如果写了,那么默认生成name,如果想生成其它名字那么这

                样定义:@synthesize name = xiaoyuancaih此时生成的成员变量就是xiaoyuancai


19,对于基本类型用assign,如果想要持 有某对象,那么可以retain或copy(深拷贝),但是copy是产生一个新的对象。这

   样,当原始的对象被释放也不会影响新拷贝的东西,但是新拷贝的东西计数为1.


20,属性的内存管理其实就是set方法内存管理,在dealloc中调用release。


21,自定义setter的情况(setter = aaa:),如定义一个年龄的时候,它有一个范围,可以用方法重写代替此方法

     如重写-(void)setAge:(int)newAge;


22,切记不要在重写set方法中调用 点 语法,防止递归而导致的死循环


23,高内聚,低耦合:高内聚指的是一个类的内部实现的封装,不会被外界随便访问,只要调用方法即可;而耦合指的是类与类之

    间的联系程度,越低越好


24,代理、协议:首先一种设计模式,可以用来传值,传事件,传方法,可以给我们返回来想要得到的返回值,并且可以实现类与

   类之间的低耦合。


25,类目的作用:一,将多个类目的声明放在同一个.h文件中,将实现放在多个.m文件中

          二,为类创建一个么有方法(创建一个前向引用---先在.m文件中创建一个类目声明一个方法,后面再去实

                                                          现)

          三,创建非正式协议(没有正式协议的情况,实现委托代理)


注:实现一个非正式协议步骤:1,创建一个基于NSObject的类目

                2,在创建类目的.h文件中定义一些想要的方法,但不去实现,同时删除该类目的.m文件

                3,在以后创建的所有NSObject的子类者可以去先择性的实现那个类目的方法,

                4,这样的类目称为一种非正式的协议。


26,延展:私有类目,要创建在.m文件中,不在.h文件中声明的方法就是类的么有方法。


27,协议就是一个方法列表,委托是一种思路,协议是一种东西


28,浅拷贝,深拷贝(使用copy方法时要实现NSCopy协议)------例如在Student类中操作


      浅拷贝---  -(id)copyWithZone{

               return [self retain];//引用计数加"1",符合copy使引用计数加1

               }


     深拷贝---  -(id)copyWithZone{

               Student* stu = [Student new];//引用计数加"1",符合copy使引用计数加1

               stu.name =self.name;

               stu.age = self.age;

               return stu;

               }


     注:在深拷贝的时候要注意,每一个复杂类型都实现了nscopy协议,把每一个成员都拷贝过去。


29,系统单例: NSNotficationCenter  NSFileManager  NSBundle  NSUserDefaults  UIApplication


30,web浏览器(客户)和web服务器的通信; FTP客户从FTP服务器获取文件; Telnet客户通过远程主机上的Telnet服务器提

  供远程登录手段.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值