object-c基础入门
### Objective-C基础入门知识点详解 #### 一、Objective-C与Cocoa框架简介 - **Cocoa框架集**:苹果公司提供了Cocoa、Carbon、QuickTime和OpenGL等技术框架集,这些框架集中Cocoa是最核心的部分,它专为Mac OS X和iOS应用开发设计。 - **Foundation框架**:包含了许多面向数据的低级类和数据结构,如`NSString`、`NSArray`、`NSDictionary`等,是所有Cocoa应用的基础。 - **Application Kit (AppKit)**:包含所有用户界面对象和高级类,例如`NSWindow`、`NSButton`等,适用于桌面应用程序开发。 - **Core Animation**和**Core Image**:提供了图形处理和动画效果的支持。 #### 二、Objective-C基本语法与特性 - **NSLog函数**:用于打印输出信息,类似于C语言中的`printf()`函数。`NSLog(@"hello Objective-C");`中的`@`符号是Objective-C特有的语法,用于标识字符串或其它类型的对象。 - **格式化字符串**:`NSLog(@"are%d and %d different? %@", 5, 5, boolString(areTheyDifferent));`中的`%@`用于输出对象的描述。 - **BOOL类型**:Objective-C中定义的布尔类型,使用8位存储,`YES`定义为1,`NO`定义为0。需要注意的是,大于1的值不会被视为`YES`,与标准C语言中的`bool`类型有所不同。此外,`1`并不等同于`YES`,在比较时应使用`YES`或`NO`。 #### 三、面向对象编程基础 - **读取文件示例**:下面是一个简单的示例,展示了如何使用Objective-C从本地文件系统读取文件内容。 ```objective-c #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { if (argc == 1) { NSLog(@"you need to provide a filename"); return 1; } FILE *wordFile = fopen(argv[1], "r"); char word[100]; while (fgets(word, 100, wordFile)) { // 去除每行末尾的换行符 word[strlen(word) - 1] = '\0'; NSLog(@"%s is %d characters long", word, strlen(word)); } fclose(wordFile); return 0; } ``` - **程序运行**:通过命令行运行程序时,如果提供了文件路径,则`argc`会大于1,可以通过`argv`数组获取文件路径。在Xcode中编译并运行此程序时,需要在项目的“Arguments”区域中添加启动参数。 - **泛型id**:`id`是Objective-C中的一种泛型,可以表示任何类的对象。`id`实际上是一个指向特定对象的指针。 - **消息发送**:Objective-C中的方法调用本质上是向对象发送消息的过程。例如,`[shape draw]`中的方括号表示消息发送操作。 #### 四、类的设计与实现 - **接口定义**:在Objective-C中,类的接口定义通常放在`.h`文件中。 ```objective-c @interface Circle : NSObject { ShapeColor fillColor; ShapeRect bounds; } -(void)setFillColor:(ShapeColor)fillColor; -(void)setBounds:(ShapeRect)bounds; -(void)draw; @end ``` - **实现文件**:类的具体实现通常放在`.m`文件中。 ```objective-c @implementation Circle -(void)setFillColor:(ShapeColor)c { fillColor = c; } -(void)setBounds:(ShapeRect)b { bounds = b; } -(void)draw { NSLog(@"^^^"); } @end ``` - **方法修饰符**:`-`表示实例方法,`+`表示类方法。 - **私有方法**:Objective-C没有真正意义上的私有方法,但可以通过命名约定等方式来避免外部访问。 #### 五、中缀符号与方法调用 - **中缀符号**:在Objective-C中,方法名与其参数之间可以使用中缀符号连接,形成一种自然语言风格的调用方式。 - **单参数调用**:`[circle setFillColor:KRedColor];` - **多参数调用**:`[circle setBounds:CGRectMake(0, 0, 100, 100)];` 以上是Objective-C基础入门的重要知识点概览,通过这些内容的学习,可以帮助初学者更好地理解Objective-C的基本概念和语法特点,为进一步深入学习打下坚实的基础。
剩余73页未读,继续阅读
- wangqiang6_20112012-12-11还可以, 了解了一点
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip
- (源码)基于Java和MySQL的学生信息管理系统.zip
- (源码)基于ASP.NET Core的零售供应链管理系统.zip