【初识Objective-C】

打印 上一主题 下一主题

主题 648|帖子 648|积分 1944

什么是OC

  OC是Objective-C的缩写,它是一种在C语言的底子上扩展的面向对象编程语言。Objective-C在1980年代由Stepstone公司的Brad Cox和Tom Love开发。他们的目的是将一些面向对象的功能添加到C语言中,使软件开发更加机动和模块化
OC的特性

  面向对象的特性:Objective-C支持类的概念,包括继承、封装和多态。它也支持动态类型和动态绑定。
  消息通报:Objective-C使用消息通报模子,而不是像大多数面向对象语言那样使用方法调用。这使得程序具有更大的机动性,因为消息可以在运行时动态剖析。
  Cocoa和Cocoa Touch:Objective-C是Apple开发OS X和iOS操作体系的主要语言,它们的主要应用程序框架Cocoa和Cocoa Touch是用Objective-C编写的。
  内存管理:Objective-C提供自动引用计数(ARC)来自动化内存管理,从而淘汰了手动内存管理的负担。
OC跑的第一个程序helloworld

  1. // 导入Foundation框架
  2. #import <Foundation/Foundation.h>
  3. // 主函数,程序入口
  4. int main(int argc, const char * argv[]) {
  5.    
  6.     // 创建自动释放池,管理内存
  7.     @autoreleasepool {
  8.         // 打印输出"Hello, World!"
  9.         NSLog(@"Hello, World!");
  10.     }
  11.     return 0;
  12. }
复制代码
 先导入了Foundation框架,然后定义了程序的入口点main函数。英文中的@autoreleasepool是一个自动释放池,它可以自动管理内存。NSLog函数用于在控制台输出字符串,类似于C语言的printf
OC的一些底子知识

标识符

 在Objective-C编程中,标识符是用来辨认变量、函数、或任何其他用户定义的项目的名称。一个Objective-C标识符是一个字母或下划线开头的名字,后面跟着零个或多个字母、下划线和数字。注意,Objective-C是区分巨细写的,所以在命名标识符时需要特别注意。
 Objective-C有两种类型的标识符:
内部标识符:这些标识符以一个字母或下划线开始,其后跟着任何数目的字母、数字或下划线。
外部标识符:这些标识符以一个字母开始,其后跟着任何数目的字母、数字或下划线。
 以下是一些Objective-C标识符的示例:
Valid: myVariableName, _myVariable, myVariable1
Not valid: 123myVariable (开头不能是数字), my Variable(不能包含空格), my-Variable(不能包含非数字/字母/下划线的字符)
 标识符的选择非常紧张,一个好的标识符名称会让你的代码更轻易阅读和理解。当选择标识符名称时,最好选择故意义的名称,让其他人阅读你的代码时能够理解他们的用途。

OC关键字


数据类型

 Objective-C支持C语言的所有基本数据类型,并添加了一些新的数据类型。以下是一些常见的数据类型:
整数类型:
—int:为一个整数,占用4个字节,取值范围通常为-2147483648至2147483647。
—short:为一个短整数,通常占用2个字节。
—long:为一个长整数,在64位体系中,占用8个字节,在32位体系中占用4个字节。
----long long:为一个长整数,占用8个字节。
无符号整数类型(它们都是正数或零):
—unsigned int
—unsigned short
—unsigned long
—unsigned long long
浮点类型:
—float:是一个浮点,占用4个字节。精确到小数点后6位左右。
—double:占用8个字节。精确到小数点后15位左右。
—long double:占用16个字节。
字符型:
—char:占用1个字节。可以存取单个字符。
其他:
—bool:布尔型。它可以取两个值,YES和NO。
—void:表现没有值大概类型。
—id:用于存储任意类型的对象。(类似Python的object或C++的auto)
 除了这些基本数据类型,Objective-C还支持对象类型,如NSString、NSArray、NSDictionary等等。还可以定义你自己的类作为新的数据类型使用。
字符型

 在Objective-C中,字符串是一串字符的集合。可以通过两种不同的方式处置惩罚字符串。
c字符串

C字符串:Objective-C继承于C语言,所以C字符串是答应的。一个C字符串以’\0’为结束标志。例如
  1. char *myCString = "This is a C String";
复制代码
NSString:这是Objective-C的字符串类,它提供了一组更增强大的字符串处置惩罚功能。
创建NSString对象的方法许多。您可以创建一个NSString对象并立即给它赋值。例如:
  1. NSString *myString = @"This is an NSString object";
复制代码
NSString类有许多方法可以对字符串进行操作,包括盘算字符串长度、比力两个字符串、将字符串转换为大写或小写,等等。例如:
  1. NSString *myString = @"Hello, World!";
  2. NSUInteger myStringLength = [myString length];  // 获取字符串长度
  3. NSString *uppercaseString = [myString uppercaseString];  // 转换为大写
  4. if ([myString isEqualToString:@"Hello, World!"]) {
  5.     NSLog(@"The strings are equal.");
  6. } else {
  7.     NSLog(@"The strings are not equal.");
  8. }
复制代码
为什么NSString类型定义时前面要加@

 在Objective-C中,@符号用于标志编译器指令。在你提供的示例str = @"5大于3"中,@是一个前缀,它告诉编译器将双引号内的文本视为一个NSString实例而非C语言的字符串。 所以,@"5大于3"实际上是创建了一个NSString对象,该对象包含文本“5大于3”。在Objective-C中,你通常会看到@用于如许的字符串定义,大概用于定义数字、字典、数组等。例如:
  1. NSNumber *myNumber = @3;
  2. NSArray *myArray = @[@1, @2, @3];
  3. NSDictionary *myDict = @{@"key": @"value"};
复制代码
在每种环境下,@都是告诉编译器创建一个Objective-C对象,而不是一个简单的C类型。
和平凡的c对象有什么区别

 Objective-C是一种纯面向对象的程序计划语言,它在C语言的底子上增加了类和对象的概念。因此,Objective-C的对象和C语言中的简单数据类型或结构有一些明显的区别。
 对象与数据类型:在C语言中,我们通常处置惩罚的是简单的数据类型,如int、float、char等,以及复合的数据类型,如结构体(struct)。而在Objective-C中,我们处置惩罚的是对象,这些对象可能是字符串(NSString)、数字(NSNumber)、数组(NSArray)等。
 方法与函数:在C语言中,我们通过函数来操作数据。而在Objective-C中,我们使用对象的方法来进行操作。
 内存管理:Objective-C提供了对内存管理的更高级的抽象,通过引用计数和自动释放池(autorelease pools)来自动管理内存。而在C语言中,你必须手动地分配和释放内存。
 使用@符号:只有在Objective-C中我们才会看到@符号的使用,它用于创建不同类型的Objective-C对象。
 更多特性:Objective-C还提供了一些面向对象编程的高级特性,如继承、封装和多态。
一些底子知识

if语句

 Objective-C中的if语句用于根据特定的条件实验不同的代码段。其语法结构与C语言和其他许多编程语言相同:
  1. if (condition) {
  2.     // 这里是当条件为真(即,结果为YES)时执行的代码
  3. }
复制代码
还可以添加一个 else 部分来在条件为假时实验代码:
  1. if (condition) {
  2.     // 这里是当条件为真时执行的代码
  3. } else {
  4.     // 这里是当条件为假时执行的代码
  5. }
复制代码
可以使用 else if 来链接多个条件
  1. if (condition1) {
  2.     // 当条件1为真时执行的代码
  3. } else if (condition2) {
  4.     // 当条件1为假,但条件2为真时执行的代码
  5. } else {
  6.     // 当条件1和条件2都为假时执行的代码
  7. }
复制代码
让我们来看一个具体的示例。假设你有一个int型的变量score,你可以使用if-else语句来判定分数的品级:
  1. int score = 85;
  2. if (score >= 90) {
  3.     NSLog(@"Your grade is A.");
  4. } else if (score >= 80) {
  5.     NSLog(@"Your grade is B.");
  6. } else if (score >= 70) {
  7.     NSLog(@"Your grade is C.");
  8. } else {
  9.     NSLog(@"Your grade is F.");
  10. }
复制代码
switch语句

 在Objective-C中,switch语句用于根据表达式或变量的值选择多个代码块之一来实验。其基本语法如下:
  1. switch (expression) {
  2.     case value1:
  3.         // 当表达式等于value1时执行的代码
  4.         break;
  5.     case value2:
  6.         // 当表达式等于value2时执行的代码
  7.         break;
  8.     // 可以有任意数量的case语句
  9.     default:
  10.         // 当表达式的值与所有case都不匹配时执行的代码
  11. }
复制代码
需要注意的是,每一个case后面的代码块末尾通常都需要一个break语句,break语句的作用是跳出switch语句,防止代码进入下一个case。
 给你看一个具体的例子,假设有一个变量day代表星期几,你可以使用switch语句来打印出这一天的名称:
  1. int day = 3;
  2. switch (day) {
  3.     case 1:
  4.         NSLog(@"Monday");
  5.         break;
  6.     case 2:
  7.         NSLog(@"Tuesday");
  8.         break;
  9.     case 3:
  10.         NSLog(@"Wednesday");
  11.         break;
  12.     case 4:
  13.         NSLog(@"Thursday");
  14.         break;
  15.     case 5:
  16.         NSLog(@"Friday");
  17.         break;
  18.     case 6:
  19.         NSLog(@"Saturday");
  20.         break;
  21.     case 7:
  22.         NSLog(@"Sunday");
  23.         break;
  24.     default:
  25.         NSLog(@"You entered an invalid number for day of the week.");
  26.         break;
  27. }
复制代码
三种循坏语句

for循环:用于固定次数的循环

  1.     for (初始化; 循环条件; 循环后的操作) {
  2.         // 循环执行的代码
  3.     }
复制代码
例如,打印从1到5的数字:
  1.     for (int i = 1; i <= 5; i++) {
  2.         NSLog(@"%d", i);
  3.     }
复制代码
while循环:当满意某个条件时反复实验循环

  1.     while (循环条件) {
  2.         // 循环执行的代码
  3.     }
复制代码
例如,打印小于即是5的数字:
  1.     int i = 1;
  2.     while (i <= 5) {
  3.         NSLog(@"%d", i);
  4.         i++;
  5.     }
复制代码
do-while循环:与while循环类似,只是先实验一次循环体,然后再查抄循环条件

  1.     do {
  2.         // 循环执行的代码
  3.     } while (循环条件);
复制代码
例如,至少打印一次数字,然后再查抄i是否小于即是5:
  1.     int i = 1;
  2.     do {
  3.         NSLog(@"%d", i);
  4.         i++;
  5.     } while (i <= 5);
复制代码
以上就是Objective-C中的三种主要的循环结构,它们各有应用场景,可以根据需要在代码中选用。
== 盼望大家一起加油==

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表