黑马程序员 OC语法补充

时间:2022-03-25 12:00:29

——- android培训java培训ios培训期待与您交流!

一、NSString用法

1.字符串的声明

在C语言中,声明字符串的方式有:
1.char * str=“string”;
2.char str[]=”string”;
OC中使用的是一个NSString类,NSString包含了多种声明字符串的方式。

1.1 创建常量字符串

NSString *astring = @"This is a String!";

1.2stringWithFormat

代码如下:

NSString *str1=@"string";
int a=12;
// 传递了两个参数,参数1是一个字符串,参数2是一个整型a
NSString *str=[NSString stringWithFormat:@"字符串参数1:%@,参数2:%d",str1,a];

1.3length方法

length方法 返回字符串的长度,即字符串包含的字符个数。
代码如下:

NSString * str=@"哈哈123";
int len=[str length];//实际返回值是unsigned long类型
//len=5

1.4 截取字符串

substringToIndex
从字符串的开头一直截取到指定的位置,但不包括该位置的字符
代码如下:

NSString *string1 = @"This is a string";
NSString *string2 = [string1 substringToIndex:3];
NSLog(@"string2:%@",string2);

substringFromIndex
以指定位置开始(包括指定位置的字符),并包括之后的全部字符

NSString *string1 = @"This is a string";
NSString *string2 = [string1 substringFromIndex:3];
NSLog(@"string2:%@",string2);

二、Objective-C代码的文件扩展名

由于在Objective-C中可以编写多种形式的源文件,因此可以通过不同的文件扩展名来区分,表2-1所示为文件扩展名说明:

文件扩展名 说明 备注
.c c语言程序文件
.h 头文件
.m Objective-C 源程序文件 代码包含有Objective-C和C的语句
.mm Objective-C++源程序文件 代码包含有Objective-C和C++的语句
.o 编译之后的文件

三OC中math.h数学公式

3.1 三角函数

double sin (double); 正弦
double cos (double);余弦
double tan (double);正切

3.2 反三角函数

double asin (double); 结果介于[-PI/2, PI/2]
double acos (double); 结果介于[0, PI]
double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2]
double atan2 (double, double); 反正切(整圆值), 结果介于[-PI, PI]

3.3 双曲三角函数

double sinh (double);
double cosh (double);
double tanh (double);

3.4 指数与对数

double exp (double);求取自然数e的幂
double sqrt (double);开平方
double log (double); 以e为底的对数
double log10 (double);以10为底的对数
double pow(double x, double y);计算以x为底数的y次幂
float powf(float x, float y); 功能与pow一致,只是输入与输出皆为浮点数

3.5 取整

double ceil (double); 取上整
double floor (double); 取下整

3.6 绝对值

double fabs (double);求绝对值
double cabs(struct complex znum) ;求复数的绝对值

3.7 标准化浮点数

double frexp (double f, int p); 标准化浮点数, f = x 2^p, 已知f求x, p ( x介于[0.5, 1] )
double ldexp (double x, int p); 与frexp相反, 已知x, p求f

3.8 取整与取余

double modf (double, double*); 将参数的整数部分通过指针回传, 返回小数部分
double fmod (double, double); 返回两参数相除的余数

3.9 其他

double hypot(double x, double y);已知直角三角形两个直角边长度,求斜边长度
double ldexp(double x, int exponent);计算x*(2的exponent次幂)
double poly(double x, int degree, double coeffs [] );计算多项式
nt matherr(struct exception *e);数学错误计算处理程序

四、总结

知识是死的,人是活的,死记硬背的再多,不见得什么时候才能用到,活学活用,需要的时候即使自己不会,也要知道 在哪里可以获得资源。