#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
//=============================================================
//声明基本的NSNumber对象
NSNumber *numInt=[[NSNumber alloc]initWithInt:5];
NSNumber *numInt1=[[NSNumber alloc]initWithInt:5];
NSLog(@"%@",numInt);
NSLog(@"%@",numInt1);
NSNumber *numFloat=[[NSNumber alloc]initWithFloat:5.10];
NSLog(@"%@",numFloat);
NSNumber *numDouble=[[NSNumber alloc]initWithDouble:5.10];
NSLog(@"%@",numDouble);
NSNumber *numChar=[[NSNumber alloc]initWithChar:'u'];
NSLog(@"%@",numChar);//此时的输出为ASCII码,
//怎么输出一个字符串呢?
//=============================================================
//获取对象代表的值:利用 (数据类型Value)来获取,如下:
double numDoubleValue=[numDouble doubleValue];
NSLog(@"double对象里面的值为:%f",numDoubleValue);
char c=[numChar charValue];
NSLog(@"字符对象里面的值为:%c",c);
//=============================================================
//比较两个数字对象的大小 利用compare,比较值
NSLog(@"%li",[numInt compare:numFloat]);
//=============================================================
//比较两个数字对象的大小,利用compare的返回值,返回值是一个枚举-1小于,0等于,1大与
if ([numFloat compare:numFloat]==NSOrderedAscending) {
NSLog(@"<");
}else if ([numFloat compare:numFloat]==NSOrderedSame)
{
NSLog(@"=");
}else
{
NSLog(@">");
}
//=============================================================
//比较两个数字对象的大小,利用isEqualToValue, 比较值和类型
NSLog(@"%i",[numFloat isEqualToValue:numDouble]);
//=============================================================
//比较两个数字对象的大小,利用isEqualToNumber,比较值
if ([numInt isEqualToNumber:numFloat]) {
NSLog(@"相等");
}else
{
NSLog(@"不相等");
}
//=============================================================
//NSRange(结构体) :范围
NSString *str = @"i love ios";
NSRange ran = {3,4};// ,NSRange是一个结构体,所以可以这样初始化。但一般不用,因为可读性不好。
NSRange ran2 = {ran2.location=3,ran2.length=4};//太麻烦,不推荐
NSRange ran3 = NSMakeRange(3, 4);//不常用
NSRange ran4 = [str rangeOfString:@"love"];
NSLog(@"love在字符串中的位置:%lu,长度为:%lu",ran4.location,ran4.length);//找不到的时候返回值为NSNotFound,当输出格式控制为%d时返回值为-1
//=============================================================
//NSPoint(CGPoint):坐标,CGPoint:可以跨平台,推荐使用这个
// 定义
/*struct CGPoint {
CGFloat x;
CGFloat y;};
typedef struct CGPoint CGPoint;
*/
NSPoint point = {1,2};// 可读性不好
NSPoint point1 = NSMakePoint(1, 2);
CGPoint point2=NSMakePoint(3, 5);
NSLog(@"%.1lf,%.1lf",point2.x,point2.y);
//=============================================================
//NSSize(CGSize):尺寸,表示UI元素的尺寸,CGSize:可以跨平台,推荐使用
// 定义
/*struct CGSize {
CGFloat width;
CGFloat height;
};
*/
NSSize nssize1={20,30};//可读性不好,不推荐
NSSize nssize2 = NSMakeSize(20, 50);
CGSize cgsize1 = CGSizeMake(30, 60);
NSLog(@"%.1lf,%.1lf",cgsize1.width,cgsize1.height);
//=============================================================
//NSRect(CGRect):元素的尺寸和大小
//定义
/*struct CGRect {
CGPoint origin;
CGSize size;
};*/
NSRect rect0 = NSMakeRect(0, 0, 100, 10);
CGRect rect1=CGRectMake(0, 0, 20, 30);
NSLog(@"%.1lf,%.1lf,%.1lf,%.1lf",rect1.size.width,rect1.size.height,rect1.origin.x,rect1.origin.y);
//=============================================================
//NSStringFrom结构体名 将一个结构体转换为字符串
NSString *rectStr = NSStringFromRect(rect1);//将一个Rect对象转换为字符串
NSString *rectStr2 = NSStringFromSize(nssize2);//将一个Size对象转换为字符串
NSLog(@"%@",rectStr);
//=============================================================
//坐标原点 CGPointMake(0,0)或者CGpoint point=CGPointZero;
//尺寸为0 CGSizeMake(0,0)或者CGSize size=CGSizeZero;
//=============================================================
//比较两个点是否相同
// CGPoint point1=CGPointMake(10,20);
// CGPoint point2=CGPointMake(10,20);
// CGPointEqualToPoint(point1, point2);//比较两个点
//=============================================================
//比较两个尺寸是否相同
// CGSize size1=CGSizeMake(10,20);
// CGSize size2=CGSizeMake(10,20);
// CGSizeEqualToSize(size1, size2);//比较两个尺寸
//=============================================================
//在iphone和ipad上以左上角为原点
//判断某个范围中是否包含了某个点
// CGRect rect1=CGRectMake(0, 0, 100, 200);
// CGRect rect2=CGRectMake(0, 0, 100, 200);
// CGPoint point1=CGPointMake(10,20);
// bool contains = CGRectContainsPoint(rect1, point1);//
// if (contains) {
// NSLog(@"范围包含点");
// }else
// {
// NSLog(@"范围不包含点");
// }
// 判断某个范围是否包含某个范围
// bool contain = CGRectContainsRect(rect1, rect2);
// if (contain) {
// NSLog(@"范围包含范围");
// }else
// {
// NSLog(@"范围不包含范围");
// }
//=============================================================
//NSString不可变的字符串
// NSString *str=@"hulg";
// NSString *str2=[[NSString alloc]initWithString:@"hulg"];//被淘汰了
NSString *str3=[NSString stringWithFormat:@"hulg"];
//将c中的字符串转换为oc中的字符串
char *strC="shshhshs";
NSString *str4=[NSString stringWithUTF8String:strC];
//将oc中的字符串转换为c中的字符串
// const char *c=[str UTF8String];//将str转换为c语言中的字符串
//=============================================================
//将字符串转换为数字
NSString *str5=@"1 23";
int num1=[str5 intValue];//将字符串转化为整形数字
float num2=[str5 floatValue];//将字符串转化为浮点型数字
//=============================================================
//获取字符串的长度
NSLog(@"%lu",[str5 length]);
//=============================================================
//获取字符串中的某个字符
NSString *strGet=@"hello";
[strGet characterAtIndex:2];//获取到索引为2的这个字符l
//=============================================================
//比较两个字符串是否相等
NSString *strEqual=@"123";
[strEqual isEqualToString:@"123"];//返回值为BOOL,比较两个字符串是否相等
[strEqual compare:@"123"]; //使用compare 比较的是ascII码,其比较的是大小或者相等
//忽略大小写来进行比较
NSString *strIgnore=@"123";
[strIgnore caseInsensitiveCompare:@"123"];//其返回值也是三种,大,小,相等
//把字符串中的小写字母转换为大写字母
NSString *str6=@"apple";
[str6 uppercaseString];
//将字符串中的大写字母转换为小写字母
NSString *str7=@"APPLE";
[str7 lowercaseString];
//将字符串中的首字母大写,其他的全部小写
NSString *strUl=@"jeREH";
[strUl capitalizedString];
//在字符串中查找另一个字符串
NSString *str8=@"study ios";
NSRange rang10 = [str8 rangeOfString:@"ios"];//返回的结果为Location=6,Length=3
NSLog(@"%@",NSStringFromRange(rang10));//把范围转化为字符串输出
if(rang10.location != NSNotFound){//判断我在字符串中找到另一个字符串
NSLog(@"%@",NSStringFromRange(rang10));
}else{
NSLog(@"没有找到该字符串");
}
//=============================================================
//截取字符串
NSString *str9=@"apple";
[str9 substringFromIndex:1];//从字符串的索引为1处开始截取
[str9 substringToIndex:2];//截取到索引为2处
[str9 substringWithRange:NSMakeRange(0, 2)];//从索引为0截取长度为2的字符串
//判断当前字符串是否为以某个字符串开头
NSString *str10=@"www.baidu.com";
[str10 hasPrefix:@"www"];//返回值为bool类型
//判断当前字符串是否为以某个字符串结尾
NSString *str11=@"www.baidu.com";
[str11 hasSuffix:@"com"];
//=============================================================
//可变字符串 NSMutableString
//可变字符串可在原字符串的基础上添加或者删除,而不可变的字符串不可以操作原字符串只可以重新赋值
NSMutableString *str12 = [[NSMutableString alloc]initWithString:@"111"];
NSString *str13 = @"444";
//在字符串的尾部增加字符串
NSLog(@"拼接前的字符串为:%@",str12);
[str12 appendString:str13];
NSLog(@"拼接后的字符串为:%@",str12);
//在字符串的某个位置插入字符串
NSMutableString *strInsert=[[NSMutableString alloc]initWithString:@"abcd"];
[strInsert insertString:@"abcd" atIndex:2];
//向一个字符串的某个范围添加一个字符串或者说用一个新的字符串替换旧的字符串中的某个范围
NSMutableString *str14=[[NSMutableString alloc]initWithString:@"abcd"];
[str14 replaceCharactersInRange:NSMakeRange(0, 2) withString:@"qw"];
//删除字符串中某个范围的字符串
NSMutableString *str15=[[NSMutableString alloc]initWithString:@"xihahe"];
[str15 deleteCharactersInRange:NSMakeRange(0, 1)];
NSMutableString *str16=[[NSMutableString alloc]initWithString:@"c oc ios"];
[str16 deleteCharactersInRange:[str16 rangeOfString:@"oc"]];
NSLog(@"%@",str16);
//=======================================================================
//将结构体转化为对象,只对上面的四个结构体有效
//NSValue
CGPoint point19=CGPointMake(10, 10);
NSValue *value=[NSValue valueWithPoint:point19];
NSArray *array=@[value];
NSLog(@"%@",array);
//将对象转化为结构体
NSPoint point3=[value pointValue];
}
return 0;
}