做网站赚几百万,百度搜索推广收费标准,什么是网络营销环境?,自己建设购物网站Objective-C学习 什么是OCOC的特性OC跑的第一个程序helloworld OC的一些基础知识标识符OC关键字数据类型字符型c字符串为什么NSString类型定义时前面要加和普通的c对象有什么区别 一些基础知识if语句switch语句三种循坏语句for循环#xff1a;用于固定次数的循环while循环和普通的c对象有什么区别 一些基础知识if语句switch语句三种循坏语句for循环用于固定次数的循环while循环当满足某个条件时反复执行循环 do-while循环与while循环类似只是先执行一次循环体然后再检查循环条件 什么是OC OC是Objective-C的缩写它是一种在C语言的基础上扩展的面向对象编程语言。Objective-C在1980年代由Stepstone公司的Brad Cox和Tom Love开发。他们的目标是将一些面向对象的功能添加到C语言中使软件开发更加灵活和模块化
OC的特性 面向对象的特性Objective-C支持类的概念包括继承、封装和多态。它也支持动态类型和动态绑定。 消息传递Objective-C使用消息传递模型而不是像大多数面向对象语言那样使用方法调用。这使得程序具有更大的灵活性因为消息可以在运行时动态解析。 Cocoa和Cocoa TouchObjective-C是Apple开发OS X和iOS操作系统的主要语言它们的主要应用程序框架Cocoa和Cocoa Touch是用Objective-C编写的。 内存管理Objective-C提供自动引用计数ARC来自动化内存管理从而减少了手动内存管理的负担。
OC跑的第一个程序helloworld
// 导入Foundation框架
#import Foundation/Foundation.h// 主函数程序入口
int main(int argc, const char * argv[]) {// 创建自动释放池管理内存autoreleasepool {// 打印输出Hello, World!NSLog(Hello, World!);}return 0;
}先导入了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’为结束标志。例如
char *myCString This is a C String;NSString这是Objective-C的字符串类它提供了一组更加强大的字符串处理功能。 创建NSString对象的方法很多。您可以创建一个NSString对象并立即给它赋值。例如
NSString *myString This is an NSString object;NSString类有很多方法可以对字符串进行操作包括计算字符串长度、比较两个字符串、将字符串转换为大写或小写等等。例如
NSString *myString Hello, World!;
NSUInteger myStringLength [myString length]; // 获取字符串长度NSString *uppercaseString [myString uppercaseString]; // 转换为大写if ([myString isEqualToString:Hello, World!]) {NSLog(The strings are equal.);
} else {NSLog(The strings are not equal.);
}为什么NSString类型定义时前面要加 在Objective-C中符号用于标记编译器指令。在你提供的示例str 5大于3中是一个前缀它告诉编译器将双引号内的文本视为一个NSString实例而非C语言的字符串。 所以5大于3实际上是创建了一个NSString对象该对象包含文本“5大于3”。在Objective-C中你通常会看到用于这样的字符串定义或者用于定义数字、字典、数组等。例如
NSNumber *myNumber 3;
NSArray *myArray [1, 2, 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语言和其他许多编程语言相同
if (condition) {// 这里是当条件为真即结果为YES时执行的代码
}还可以添加一个 else 部分来在条件为假时执行代码
if (condition) {// 这里是当条件为真时执行的代码
} else {// 这里是当条件为假时执行的代码
}可以使用 else if 来链接多个条件
if (condition1) {// 当条件1为真时执行的代码
} else if (condition2) {// 当条件1为假但条件2为真时执行的代码
} else {// 当条件1和条件2都为假时执行的代码
}让我们来看一个具体的示例。假设你有一个int型的变量score你可以使用if-else语句来判断分数的等级
int score 85;if (score 90) {NSLog(Your grade is A.);
} else if (score 80) {NSLog(Your grade is B.);
} else if (score 70) {NSLog(Your grade is C.);
} else {NSLog(Your grade is F.);
}switch语句 在Objective-C中switch语句用于根据表达式或变量的值选择多个代码块之一来执行。其基本语法如下
switch (expression) {case value1:// 当表达式等于value1时执行的代码break;case value2:// 当表达式等于value2时执行的代码break;// 可以有任意数量的case语句default: // 当表达式的值与所有case都不匹配时执行的代码
}需要注意的是每一个case后面的代码块末尾通常都需要一个break语句break语句的作用是跳出switch语句防止代码进入下一个case。 给你看一个具体的例子假设有一个变量day代表星期几你可以使用switch语句来打印出这一天的名称
int day 3;
switch (day) {case 1:NSLog(Monday);break;case 2:NSLog(Tuesday);break;case 3:NSLog(Wednesday);break;case 4:NSLog(Thursday);break;case 5:NSLog(Friday);break;case 6:NSLog(Saturday);break;case 7:NSLog(Sunday);break;default:NSLog(You entered an invalid number for day of the week.);break;
}三种循坏语句
for循环用于固定次数的循环 for (初始化; 循环条件; 循环后的操作) {// 循环执行的代码}例如打印从1到5的数字 for (int i 1; i 5; i) {NSLog(%d, i);}while循环当满足某个条件时反复执行循环 while (循环条件) {// 循环执行的代码}例如打印小于等于5的数字 int i 1;while (i 5) {NSLog(%d, i);i;}do-while循环与while循环类似只是先执行一次循环体然后再检查循环条件 do {// 循环执行的代码} while (循环条件);例如至少打印一次数字然后再检查i是否小于等于5 int i 1;do {NSLog(%d, i);i;} while (i 5);以上就是Objective-C中的三种主要的循环结构它们各有应用场景可以根据需要在代码中选用。 希望大家一起加油