1.oc中的类和构造方法

NSAutoreleasePool * pool =[[NSAutoreleasePool alloc] init];

NSAutoreleasePool是一个类,alloc相当于c++或者java中的new(为对象分配空间),init相当于java或者c++中的构造方法,对应的都要使用[]括起来。

2.NSLog(@"Hello,World!");
类似于printf,格式化输出
@+“字符串”=NSString*对象,为oc的字符串常量(这个地方有点不理解)

3 oc函数(方法)调用的方式:
[类名 方法名]; //类方法(大致相当于静态成员函数,也就是java中的public和static修饰的方法)
eg.+(void)fun;先不管别的,说这个+号,说明是类方法
[对象名 方法名];//实例方法(这个和java中的通用方法一样)
eg.-(void)fun;先不管别的,说这个+号,说明是对象方法

4.%@ object输出对象,调用对象的description方法

5.NSString * str = @"Hello World";
NSString是一个oc对应的string类
在oc中大部分的对象都要分配到堆上,用指针来指向,@用来表示一个字符创常量

NSNumber * num =[NSNumber numberWithInt:100];
上面这行[NSNumber numberWithInt:100]中和前面说明的相照的话,会发现这个是类方法,NSNumber是一个类,numberWithInt是一个方法,并且是静态的方法,后面的100是参数,有几个参数就有几个冒号,对应的形式为:[类名 方法名:参数];

6.如下一段代码
NSLog(@"NSNumber:%@",num);这一行不用分析,就是NSNumber是一个类
AddressCard * card = [[AddressCard alloc]initWithName:@"Tom" andEmail:@"Tom@gail.com"];
NSLog(@"AddressCard:%@",card);
[card release];
第二行的[AddressCard alloc]不用分析了,1中已经讲解了
initWithName:@"Tom" andEmail:@"Tom@gail.com"这一部分也和1中的构造方法类似,其中@"Tom"是第一个参数,andEmail:@"Tom@gail.com"是第二个参数,andEmail视频上讲解时说是后面@"Tom@gail.com"这个参数的别名,有点不是很理解,先记在这里,一会慢慢理解吧
(后面又讲到Email是@"Tom@gail.com"的名字,Name是@"Tom"的名字)
[card release];这行代码中release和前面的alloc相对应,一个分配,一个释放

7.
NSInteger intValue2 = -999;
在oc中以NS开头的一般都是认为是对象,分配在堆上,并且使用指针来指向,不过这个地方的Integer有点特殊,它实际上就是一个int

8.
unichar pUnichar[] = {L'你',L'好',0x0000};
声明一个unicode编码格式的变量,L表示unicode,最后的0x0000相当于字符串的结束标志'\0'
对应的打印语句如下:
NSLog(@"C string(unichar):%S",pUnichar);
unicode编码的字符串使用%S来进行输出

9.静态全局变量
static int sum=5;静态全局变量
oc不支持静态成员变量,通过静态全局变量来实现静态成员变量的功能
(这个地方我不是很理解,静态全局变量,难道静态全局变量能写在类外面么?)

10.@property(nonatomic) int radius;
这句就实现了对int radius属性对应的setter和getter方法(ob自己自动实现的),其中nonatomic意思是不适用线程。对应的.h和.c内容如下

Circle.h
#import <Foundation/Foundation.h> @interface Circle:NSObject{
int radius;
}
@property(nonatomic) int radius;
-(void)print;
@end Circle.m
#import "Circle.h" @implementation CirCle
@sythesize radius;
-(void)print{
NSLog(@"radius:%d",radius);
} main.m
#inport <Foudation/Foudation.h>
#import "Circle.h" int main(int argc,const char *argv[]){
Circle *circle =[[Circle alloc]init];
[cicle print];
[cicle release];
}

最新文章

  1. Linux命令-自动挂载文件/etc/fstab功能详解[转]
  2. url 中 # ? &amp; 的作用
  3. nginx新增绑定域名
  4. 用curl向指定地址POST一个JSON格式的数据
  5. Rhino Mock
  6. log4j2 使用说明
  7. ios frame bounds applicationframe
  8. Android IOS WebRTC 音视频开发总结(六三)-- 2016国内IM云服务行业分析
  9. Volley使用指南第三回(来自developer.android)
  10. 64位Ubuntu14.04搭建ADT开发环境
  11. JavaSE学习总结第13天_API常用对象3
  12. RHEL5 X86-64上安装Oracle 11gR2演示样例与总结
  13. angular localStorage使用方法
  14. 【原创】bootstrap框架的学习 第五课
  15. SpringMVC,SpringBoot利用ajax上传文件到后台
  16. pycharm连接mysql数据库插入中文数据时出现1366编码错误
  17. grep,find
  18. python常见的数据结构
  19. spring 框架整合mybatis的源码分析
  20. python绘制三维图

热门文章

  1. MySQL的SQL_CALC_FOUND_ROWS
  2. Memcached‘process_bin_delete’函数安全漏洞
  3. QNX环境
  4. POJ 1062 昂贵的聘礼 解题报告
  5. 【转】VC MFC 如何删除文件,目录,文件夹
  6. Oracle to_char格式化函数
  7. Java Socket 异常 Connection reset
  8. SQL server 2012序列号 注册码 z
  9. vs212创建mvc3项目,添加ADO.NET实体数据模型时产生 XXXX.Desiger.cs 文件为空
  10. dataframe 数据统计可视化---spark scala 应用