前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Objective-C 入门笔记

Objective-C 入门笔记

作者头像
meteoric
发布2018-11-19 18:06:47
6480
发布2018-11-19 18:06:47
举报
文章被收录于专栏:游戏杂谈

简介

建立在C语言之上,可以混编C/C++代码,编写一个类需要二个文件:

.h的头文件

.m的实现文件(如果是C/C++混编文件,文件后缀为.mm)

既然有头文件,所以很多人会拿它与C++进行类比,它最重要的三个特性是:Message、Category、Protocol,与C++类比,二者之间的不同:

1、它没有new也没有delete,但有类似的方法alloc、dealloc;

2、不支持多继承,只支持单继承,但是提供了Protocol;

3、它没有命名空间;

4、不支持内联函数;

5、不支持参数默认值;

C++太过庞大,所以拿二者比较其实不是特别合适,跟Java相比,我觉得可能更适合一些吧

快速入门

1) 类的定义

.h头文件

代码语言:javascript
复制
@interface Hello : NSObject  
  
@end 

.m实现文件

代码语言:javascript
复制
#include "Hello.h"
@implementationFraction
 
@end

通常我们定义一个类,都会让它继承自NSObject。有人会问NSObject后面的{}怎么省略了,因为我没有定义“实现变量”所以就把它省略了。

因为OC不提供命名空间,所以类命名上要特别注意了,不然很容易覆盖/冲突而导致很多未知的问题。苹果定义的类,一般类名最前面有二个字母,比如NSObject中的NS,UIKit中的UI,所以为了避免跟苹果定义的类产生冲突,自定义的类以三个字母开头,比如BNR这样

2) 方法的定义和调用

方法分二种:实例方法、类方法,如上图所示,区别类方法和实例方法,主要是它的声明符:-、+

+ (返回值类型) 类方法名

- (返回值类型) 实例方法名,需要先创建后再使用,比如这样:[[[Hello alloc] init] methodName];

无论是哪种方法,调用都是使用中括号“[]”,方法的准确来讲应该称为发消息,它有三个要素:

receiver(消息接收方)

selector(选择器,通常指方法名)

arguments(实参)

通常类中调用自身的方法,用[self xx],self是一个隐式的局部变量,不需要声明self,程序自动会为self赋值,把它当作JavaScript中的this就好理解了。

OC中默认所有的方法都是公开的,所以如果你想定义一个私有方法,不需要在.h中声明方法,直接在.m中定义方法就好,但是建议使用p_开头,这样避免与苹果中定义的一些私有方法名产生冲突。

3) 基本数据类型

OC建立在C语言之上,所以C中的所有基本数据类型它都支持,比如:int、float、char…

OC自身定义的数据类型,都包含在Foundation中了,类名以NS开头,比如:NSArray、NSInteger、NSNumber,定义:NSString *myStr;

更多关于Objective-C的学习资料,推荐 Ry’s Objective-C Tutorial

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-05-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 快速入门
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档