十九.一些规范


import系统自带的用尖括号<>来包含。

发现需求不清晰,一定要先搞明白才去做。

多文件开发,文件名和类名一致

命令行里的做法:(只是编译链接主文件,但是全部编译链接会出错)

1.每个文件都要引入主框架(如果使用了NSObject)
2.如果用到了其他类,也要引入
3.主文件要引入所有用到的类

正式的做法:(所有文件一起编译链接)

借鉴C语言的做法,写h文件来包含声明。

import不要包含源文件,容易发生重复定义错误(duplicate)。

把类的声明(@interface)放到.h文件中。

******定义一个类分为两个文件.h和.m
.h:放 成员变量 和 方法的声明(@interface)
.m:放 方法的实现(@implementation)
主文件则用来融合所有的.h

二十.XCode新建类


使用Cocoa Class创建类可以同时生成.h和.m

二十一.XCode断点调试


设置断点,在output框上测有空心向右的箭头按钮表示前进,把鼠标暂留在变量上可以查看详细信息。

单步按钮的前方是断点是否有效的按钮。

删除断点:按住断点向外拖

二十二.生成代码块


左键长按代码块直到出现箭头,然后拖入右下角代码块内



shortcut是触发条件,当检测到相应的输入就可以替换为相应的代码框

二十三.特有注释


#pragma mark xxx

可以用索引进行定位。

使用
#pragma mark - xxx 可以在方法前产生横线分隔符

特殊技巧

#pragma mark - group1
xx
xx
xx
xx
#pragma mark - group2
xx
xx
xx
xx

这样可以产生两组

二十四.多文件查看


采用的是和视图窗口内编辑一样的方法,
在View->Assistant内可以修改第二视窗的显示位置

二十五.点语法


为了兼容其他语言的点运算符。

当编译器遇到点语法,会把点语法转化成set方法

stu.age = 10;展开为:
[stu setAge : 10];

注意age并不是成员变量

p.age 是get方法,看有没有赋值。



前面的按钮可以在断点处跳入应该跳转的函数。

在get和set方法中不要再用点语法,否则会引发死循环。

点语法不是访问成员变量,而是转成set和get方法。

必须先定义set和get方法,才能使用点语法。

二十六.成员变量作用域


@private 只能在当前类的对象方法中实现

@protected 只能在当前类及其子类的对象方法中实现(在声明中什么都不写默认是@protected)

@public 任何地方都能直接访问对象的成员变量

@package 只要处在同一个框架中,就能直接访问

只要声明一次作用域,下面的都是该作用域。

在实现里面定义成员变量默认私有。不要这么写,因为包含.h时不能探测到。
因为.m不会被包含。

虽然子类不能访问父类的私有变量,但是内存中有该变量。

OC是单继承。

二十七.一些编译器特性


@property 可以自动生成某个成员变量的set和get方法声明。

例如对于
int _age这个成员变量:

@property int age;

@property后面的是对set的参数类型和get的返回值类型的说明。

会自动变成
  set方法:
  • (void)setAge:(int)age;
  get方法:
  • (int)age;

@synthesize 生成property的set和get实现。

对于上面的,用@synthesize age = _age来实现。
后面的表示真实访问的是哪个成员变量。

小技巧:类型一样的可以写在同一行。但是一般是分开写。
如果不写成员变量,@property会自动生成private成员变量。(加下划线的),会根据实现里面的=后面的来生成。

Xcode4.4以后,可以只写@property。

但是自动生成的是@private作用域。

@synthesize age;自动生成的是age成员变量而非_age,系统会自己使用self进行区分。

如果已经写了get或者set方法,Xcode会自动生成没有的,而不会覆盖已有的。

设成员变量为_xxx
则get的标准写法为: 
- (类型)xxx{
return _xxx;
}
set的标准写法为:
- (void)setXxx : (类型)xxx{
_xxx = xxx;




OC语言(三)的更多相关文章

  1. iOS开发-OC语言 (三)字符串

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 24.0px "PingFang SC" } p ...

  2. swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者

    Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...

  3. OC语言前期准备

    OC语言前期准备 一.OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码. 可以使用OC开发mac osx平台和ios平台的应 ...

  4. OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  5. OC语言@property @synthesize和id

    OC语言@property @synthesize和id 一.@property @synthesize关键字 注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明 ...

  6. OC语言构造方法

    OC语言构造方法 一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法 ...

  7. OC语言类的本质和分类

    OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...

  8. OC语言description方法和sel

    OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象 ...

  9. OC语言-03-OC语言-三大特性

    一.封装 1> 封装的定义 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别 2> 封装的好处 可以通过set方法防止为成员变量设置不合理的值 仅向外部提供公 ...

  10. OC语言-02-OC语言-基础知识

    一.基础语法 1> OC语言和C语言 C语言是面向过程的语言,OC语言是面向对象的语言 OC语言继承了C语言,并增加了面向对象的思想 以下内容只介绍OC语言与C语言的不同之处 2> 关键字 ...

随机推荐

  1. SLAMCN资料收藏转载

    网页链接地址:http://www.slamcn.org/index.php/%E9%A6%96%E9%A1%B5 资料非常丰富,内容如下: 首页 目录 [隐藏]  1 SLAM 介绍 1.1 什么是 ...

  2. Python 3.3.3 使用requests模拟登录网站

    在模拟登录上,requests确实比python标准库中的相关模块更加简洁. 假设你需要去爬一组页面(targetUrls),而这些页面要登录才能进行访问.那么requests能够提供一种相当简单的语 ...

  3. 【SSH系列】---Hibernate的基本映射

    开篇前言       在前面的博文中,小编分别介绍了[SSH系列]-- hibernate基本原理&&入门demo,通过这篇博文,小伙伴们对hibernate已经有了基本的了解,以及h ...

  4. 如何使用《DB 查询分析器》高效地生成旬报货运量数据

    如何使用<DB 查询分析器>高效地生成旬报货运量数据 马根峰                    (广东联合电子服务股份有限公司, 广州 510300) 1      引言   中国本土 ...

  5. introduction of velocity

    一.velocity 简介 基于java 的模板引擎,apache 旗下的开源软件项目. 目的在于隔离 表示层和业务逻辑层,当然现在做的不仅仅是这些. 二.应用场景 web 应用程序:创建html页面 ...

  6. Java中导出到Excel实现_aspose.cells

    参考http://183615215-qq-com.iteye.com/blog/1858208 包下载:http://pan.baidu.com/s/1o6ju0ZK,将lib的jar包导入到工程中 ...

  7. Hibernate之多对多表,操作实例

    多表操作之多对多关系简介 思路就是: 在数据库底层通过添加中间表来指定关联关系. 在双方的实体中添加一个保存对方的集合 在双方的配置文件中使用set标签和many-to-many标签来进行关联关系的配 ...

  8. iOS 南京互联网大会分享及个人见解 韩俊强的博客

    首先分两大块: 1.如何打造高效/稳定的App (重点): 2.软件自动化测试: 每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 每日更新关注:http://we ...

  9. MacTalk·人生元编程 - 读书笔记

    简介 <MacTalk·人生元编程>是一本随笔文集,主要内容来自作者的微信公众平台"MacTalk By 池建强".本书撰写于2013年,书中时间线却不止于此.作者以一 ...

  10. 1. MariaDB简介

    作者: 铁锚 日期: 2013年9月21日 官方博客地址:https://mariadb.org/ 官网地址: https://mariadb.com/ 百度百科地址: http://baike.ba ...