.h头文件,用于声明一些公开的属性、方法。头文件一般不会放太多的东西,没必要暴露太多接口,私有和封装。

.m主文件,用于实现.h文件中的方法,以及一些其它的方法。

-(返回值)方法名参数1名称:(参数1类型)  参数1函数内名称 参数2名称:(参数2类型) 参数2函数内名称......;

调用静态(类)方法:[类名 方法];

调用实例方法:[变量名 方法];

基本类型的声明,不需要*修饰;

#代表预编译处理符号

#include与#import:

#include 引入文件

#import 防止重复包含

Person.h

@interface声明部分开始

声明部分

@end声明部分结束

继承:类名:父类名

类别(扩展):父类名(类名)

  类别可以对已经存在的类的行为进行拓展。

Person.m

@implementation实现部分开始

实现部分

@end实现部分结束

main.m

alloc用于分配内存

init执行初始化操作

Objective-C中使用的是消息传递机制,调用方法、访问属性等一类操作也可叫做消息传递。

@关键词(属性修饰符) 类型 名字;

参考:http://blog.csdn.net/zhiganglet/article/details/7546333

关键词:

  property:自动声明属性读取方法以及设置方法如

  @property int personAge;

  编译器自动生成以下:

  -(int)personAge;

  -(void)setPersonAge:(int)newValue;

  synthesize:在主文件中实现属性读取遗迹设置方法如

  @synthesize personAge;

  编译器自动生成以下:

  -(int)personAge{

    return personAge;

  }

  -(void)setPersonAge:(int)newValue{

    personAge = newValue;

  }

属性修饰符:

  readwrite(默认)/readonly;

  assign/retain/copy;

  atomic(默认)/nonatomic;

  readwrite:产生setter和getter方法;

  readonly:只产生简单的getter,没有setter;

  assign:默认,setter方法直接赋值而不retain;

  retain:setter方法先release旧值,再retain新值;

  copy:setter方法进行copy,与retain一样;

  nonatomic:禁止多线程,保护变量,提高性能(

    如果使用多线程,有时会出现两个线程互相等待对方导致锁死的情况。

    在没有(nonatomic)的情况下,即默认(atomic),会防止这种线程互斥出现,但会消耗一定的资源。

    所以如果不是多线程的程序,打上(nonatomic)即可

  )

  

  属性值修饰后所有权

strong

__strong

有

weak

__weak

无

unsafe_unretained

__unsafe_unretained

无

copy

__strong

有

assign

__unsafe_unretained

无

retain

__strong

有

  strong(默认)

  该属性值对应 __strong 关键字,即该属性所声明的变量将成为对象的持有者。

  weak

  该属性对应 __weak 关键字,与 __weak 定义的变量一致,该属性所声明的变量将没有对象的所有权,并且当对象被破弃之后,对象将被自动赋值nil。

  并且,delegate 和 Outlet 应该用 weak 属性来声明。同时,如上一回介绍的 iOS 5 之前的版本是没有 __weak 关键字的,所以 weak 属性是不能使用的。这种情况我们使用 unsafe_unretained。

  unsafe_unretained

  等效于__unsafe_unretaind关键字声明的变量;像上面说明的,iOS 5之前的系统用该属性代替 weak 来使用。

  copy

  与 strong 的区别是声明变量是拷贝对象的持有者。

  assign

  一般Scalar Varible用该属性声明,比如,int, BOOL。

  retain

  该属性与 strong 一致;只是可读性更强一些。

  

当对象持有数为0时,系统将回收对象所占据的内存。

Objective-C学习笔记-第一天(1)的更多相关文章

  1. ActionBarSherlock学习笔记 第一篇——部署

    ActionBarSherlock学习笔记 第一篇--部署          ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...

  2. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  3. Django学习笔记---第一天

    Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...

  4. ASP.NET Core 学习笔记 第一篇 ASP.NET Core初探

    前言 因为工作原因博客断断续续更新,其实在很早以前就有想法做一套关于ASP.NET CORE整体学习度路线,整体来说国内的环境的.NET生态环境还是相对比较严峻的,但是干一行爱一行,还是希望更多人加入 ...

  5. GIT学习笔记——第一章

    git之vim编辑器退出命令 # 学习笔记 张文军微博主页  张文军码云主页   张文军新浪云主页  张文军博客主页 ## 刚学习git,好多东西没接触过,进入vim后不知道如何出来了,网上找了很多都 ...

  6. 《JavaScript权威指南》学习笔记 第一天。

    这是零零散散的笔记,作为自己看书打demo的笔记.不足为各位学习,留作自己复习知识点备用. 1.检测对象中某个属性存在不存在: <script> // in 运算符 //不管是对象的自有属 ...

  7. PRML学习笔记第一章

    [转] PRML笔记 - 1.1介绍 模式识别的目标 自动从数据中发现潜在规律,以利用这些规律做后续操作,如数据分类等. 模型选择和参数调节 类似的一族规律通常可以以一种模型的形式为表达,选择合适模型 ...

  8. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

  9. AndroidStudio学习笔记-第一个安卓程序

    要带一个本科生做一部分跟安卓有点关系的项目,于是趁着机会学习一下编写安卓程序. 第一篇材料来自谷歌官方,传送门:https://developer.android.com/training/basic ...

  10. 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C

    blog.csdn.net/totogo2010/article/details/8205810  目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ...

随机推荐

  1. Oracle创建/删除表空间和用户(2014-3-10 记)

    /*创建表空间名为:DB_NAME*/ create tablespace DB_NAME datafile 'E:\oracle_data\db_name.dbf' size 100M autoex ...

  2. Oracle logmnr工具分析日志脚本

    在oracle:对logmnr工具分析日志这个不陌生:对数据恢复应用场景经常用到:这里为了方便对归档日志进行分析: 当然网上有一个logmnr界面的工具:感觉很人性化:下载需要积分:为此写一个脚本. ...

  3. 普华永道高级JAVA面试记录

    最近在考虑换个工作 原因?咱能不逗吗? 一面感觉发挥不错  二面之后累觉不爱  基本上浪费了半天的工资(好多钱啊~~~) PWD上海地址在浦东软件园  工作环境说实话没我现在工作的环境好,不过里面的人 ...

  4. JavaScript编码风格指南(中文版)

    前言: 程序语言的编码风格对于一个长期维护的软件非常重要,特别是在团队协作中.如果一个团队使用统一规范的编码分风格,可以提高团队的协作水平和工作效率.编程风格指南的核心是基本的格式化规则,这些规则决定 ...

  5. Annotation

    Annotation是给类,方法或域上加的一种特殊的标记,可以通过反射取到注解的类型和值,从而完成某种特定的操作. 定义注解需要使用元注解,元注解有@Retention和@Target p.p1 { ...

  6. jQuery 效果 —— 隐藏和显示

    jQuery 效果 -- 隐藏和显示 1.隐藏和显示 (1)在jQuery中我们可以使用hide()和show()分别隐藏和显示HTML元素: //隐藏元素 $("button") ...

  7. 。【自学总结 3】------3ds Max 主工具栏

    1.选择并链接:选择对象,使其和其他对象建立父子关系. 2.断开选择链接:撤销链接关系. 3.选择过滤器列表:可以限制要选择的对象的特定类型和组合.例如,我们选择几何体后,其他对象就无法被选择. 4. ...

  8. python 列表常用操作

    例子: list1 = [1, 2, 3, 4, 5, 6, [6, 7, 8,9], 'hi', 'hello', 6] list2 = [7, 8, 1, 2] list3 = ['good', ...

  9. sql_树形查询

    with Subqry(FID,A_TypeName,A_ParentID) as (select FID,A_TypeName,A_ParentID from tb_Appliances where ...

  10. parseInt的源码阅读

    parseInt的源码阅读 Integer.parseInt()这个方法的功能小巧又实用,实现起来困难不大,没有很复杂.这里就来看一下Java的源码是怎么写的吧,走一边大婶写过的代码,应该会有点收获吧 ...