• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Objective-C基础教程笔记

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、对C的扩展

1. #import VS #include

C语言使用#include语句通知编译器应在头文件中查询定义。

OC中也可以使用#include,但几乎不这么用,而是使用#import。

#import <Foundation/Foundation.h>

(查看Foundation框架中的Foundation.h头文件)

#import是GCC编译器提供的,Xcode在编译OC、C和C++程序时都会使用。可以保证头文件只被包含一次,而不论此命令实际在文件中出现了多少次。

 

2. 框架

框架是一种聚集在一个单元的部件集合,包含头文件、库、图像、声音文件等。

苹果公司将Cocoa、Carbon、QuickTime和OpenGL等技术作为框架集提供。

Cocoa的组成部分有Foundation和Application Kit(AppKit)框架。

还有一个支持框架的套件,包含Core Animation和Core Image。

Foundation框架处理用户界面之下的层(layer)中的特性,例如数据结构和通信机制。

Foundation框架包含一百多个头文件,可在/System/Library/Frameworks/Foundation.framework/Headers/文件夹查看。

 

Xcode使用预编译头文件,一种经过压缩的、摘要形式的头文件,在通过#import导入这种文件时,加载速度非常快。

 

3. NSLog()

NSLog()相对于printf()添加了时间戳、日期戳和自动附加换行符('\n‘)等特性。

Cocoa对其所有函数、常量和类型名称都添加了“NS”前缀,说明来自Cocoa而不是其他工具包。(NS来自于苹果公司收购的NeXT公司)

 

4. @字符串

@“xxxx”双引号字符串前有一个@符号,表示为NSString类型的字符串。

有许多特性,例如:知道长度,与其他字符串比较,转换为整型值或浮点值,还有许多功能是使用C风格字符串无法实现的。

如果在NSLog()中传入C风格字符串,编译器会给出warning:passing arg 1 of `NSLog` from incompatible pointer type。

 

5. 布尔类型

C语言:bool,值为true或false。

OC:BOOL,值为YES或NO。编写Cocoa代码时要使用BOOL。

BOOL实际上是一种对带符号的字符类型(signed char)的定义(typedef),使用8位存储空间。YES定义为1,而NO定义为0(#define)。

OC并不将BOOL作为仅能保存YES或NO值的真正的布尔类型来处理,编译器将BOOL认作8位二进制数,YES和NO值只是一种约定。

如果不小心将一个长于1字节的整数值(如short或int)赋给一个BOOL变量,那么只有低位字节会用作BOOL值。如果地位字节刚好是0(例如8960,十六进制为0x2300),BOOL值将会是0,即NO。

不要直接将BOOL值与YES比较。OC中1不等于YES,但NO就是0。

NSLog(@"Are %d and %d different? %@", 5, 5, boolString(areTheyDifferent)); //其中%@表示接收NSString指针。

 

二、面向对象编程OOP

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Objective-C 学习快速入门总结 - coder狼发布时间:2022-07-12
下一篇:
Objective-c开发教程--MRC和ARC混编发布时间:2022-07-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap