第一个object c 程序

首先新建一个项目,“create a new Xcode project"-"OS X下的Application"-"Command Line Tool" ,命名为“点语法”,Type为“Foundation”,不要勾选“Use Automatic Reference Counting”这个选项(ARC是Xcode的内存自动管理机制,刚开始学的时候先自己管理内存,以后熟悉了再勾选),,最后再新建一个类,“File”-“New”-“File”-“Cocoa”-“Object-C class",命名为“Person”,基类为“NSObject”,接下来就是代码的编写,如下:

Person.h:

  1. //
  2. //  Person.h
  3. //  点语法
  4. //
  5. //  Created by Rio.King on 13-8-25.
  6. //  Copyright (c) 2013年 Rio.King. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. @interface Person : NSObject
  10. {
  11. int _age;//默认为@protected
  12. }
  13. - (void)setAge:(int)age;
  14. - (int)age;
  15. @end

Person.m

  1. //
  2. //  Person.m
  3. //  点语法
  4. //
  5. //  Created by Rio.King on 13-8-25.
  6. //  Copyright (c) 2013年 Rio.King. All rights reserved.
  7. //
  8. #import "Person.h"
  9. @implementation Person
  10. - (void)setAge:(int)age
  11. {
  12. _age = age;//注意不能写成self.age = newAge,相当与 [self setAge:newAge];
  13. }
  14. - (int)age//object C 的调用get方法的命名习惯是直接用属性名,而不加get前缀,如getAge等。
  15. {
  16. return _age;
  17. }
  18. @end

main.m

  1. //
  2. //  main.m
  3. //  点语法
  4. //
  5. //  Created by Rio.King on 13-8-25.
  6. //  Copyright (c) 2013年 Rio.King. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "Person.h"
  10. int main(int argc, const char * argv[])
  11. {
  12. @autoreleasepool {
  13. // insert code here...
  14. Person *person = [[Person alloc] init];
  15. //[person setAge:10];
  16. person.age = 10;//点语法,等效与[person setAge:10];注意,这里并不是给person的属性赋值,而是调用person的setAge方法
  17. //int age = [person age];
  18. int age = person.age;//等效与int age = [person age],,你可以试着打印出来看看。
  19. NSLog(@"age is %i", age);
  20. [person release];
  21. }
  22. return 0;
  23. }

几点说明:

1.根据 Objective-C.Programming.The.Big.Nerd.Ranch.Guide.Jan.2012这本书里说的,,点语法一般不常用,经常用的是中括号的形式。如 [ person age]这样的形式。

2.函数前面的“-”代表的是动态方法,静态方法用”+“,,”-“和”+“都不能省略,不然编译器会报错。

3.点语法的本质是调用get方法和set方法。

4.不要忘了[person release]这句。

版权声明:本文为博主原创文章,未经博主允许不得转载。

ios之点语法的更多相关文章

  1. iOS - OC 面向对象语法

    1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(cate ...

  2. iOS - Swift 面向对象语法

    1.面向对象 面向过程:面向过程编成将所要解决的问题按解决问题的步骤进行分析.如果是大问题,就分解成为多个不同的小问题,在程序里叫做划分成不同的模块.每一个解决的步骤可能是一行或者几行代码,也可能是一 ...

  3. iOS开发swift语法0基础篇—————(swift技术交流群:361513739)

    iOS开发之swift语法0基础篇:点击打开链接  swift技术交流QQ群361513739

  4. ios waxpatch lua语法

    Wax Lua 使用方法 说一下 Wax 的特点,它支持你在脚本里使用任何 OC 的类,同样也支持你创建一个类. 使用一个类时你会这样使用: 1 2 NSString -- Returns the N ...

  5. iOS - OC 基本语法

    1.常见文件扩展名 .c C 语言源文件 .cc..cpp C++ 语言源文件 .m Objective-C 源文件 .mm Objective-C++ 源文件 .h 头文件 .pl Perl 源文件 ...

  6. iOS - Swift 基本语法

    前言 Swift 全面支持 Unicode 符号. Swift 中的定义和实现是在同一个单元中的,通常一个 Swift 源代码单文件是以 ".Swift" 结尾的. Swift 不 ...

  7. iOS: 布局可视化语法 Visual Format Syntax

    可视化语法 Visual Format Syntax The following are examples of constraints you can specify using the visua ...

  8. ios结构体语法

  9. iOS开发——高级语法篇&继承、实现、依赖、关联、聚合、组合的联系与区别

    继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者 ...

随机推荐

  1. UVa 10285 Longest Run on a Snowboard【记忆化搜索】

    题意:和最长滑雪路径一样, #include<iostream> #include<cstdio> #include<cstring> #include <c ...

  2. HNOI2010弹飞绵羊

    不得不说块状数组好神奇的啊!这道题的标签可是splay的启发是合并(什么高大上的东西),竟然这么轻松的就解决了! var x,y,i,j,tot,n,m,ch:longint; f,k,l,bl,go ...

  3. I.MX6 Ubuntu core porting

    /*********************************************************************** * I.MX6 Ubuntu core porting ...

  4. python - pip 从已有的安装列表 安装

    已经安装好的机器:sudo pip freeze > install_list.list 需要安装的机器:sudo pip install -r install_list.list

  5. 【流媒體】live555—VS2010 下live555编译、使用及测试

    Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编 ...

  6. 解决Jsoup网页抓取过程中需要cookie的问题

    最近在做城觅网的信息抓取,发现城觅网上海与北京的url是一样的.那怎样才确定信息的来源呢?折腾了半天,才发现城觅网是使用cookie的,如果你把网站的cookie禁用了,就无法在上海与北京之间切换了. ...

  7. Eclipse小技巧<一>

    Eclipse是一款特别好用的开源开发工具,基于插件的特性使其能够进行各种语言的开发.非常喜欢eclipse里的编码风格,感觉这个开发工具十分灵活,又有很多开发的小技巧能够提高开发效率,每次学到一个t ...

  8. java transient简介

    我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable ...

  9. MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql

    目录(?)[-] 一MyBatis简介与配置MyBatisSpringMySql MyBatis简介 MyBatisSpringMySql简单配置 搭建Spring环境 建立MySql数据库 搭建My ...

  10. 【转】如何用WINDBG分析64位机上32位程序的DUMP文件

    将dump拖入到windbg中后,在command输入栏输入 .load wow64exts 回车 !sw 回车,就将windbg的dump,从64位模式切换到了32位模式,否则看到的call sta ...