黑马程序员 _11 OC基础 Foundation框架初学

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

一、 NSRange

包括location与length两个属性,是取字符串一块在其中的起始位置与元素个数的定义

如定义字符串

 NSString *str = @"i love oc";

查找其中的一块

 NSRange range = [str rangeOfString:@"jloc"];

    NSLog(@"loc = %ld, length=%ld", range.location, range.length);//如果类型为d会警告,因为长度问题.

二.NSPoint

表示一个点,拥有(x,y)的属性,平面一点.两种定义方式

  CGPoint p1 = NSMakePoint(10,10);

    NSPoint p2 = CGPointMake(20,20);// 最常用

注:CGPointZero表示原点,也就是手机屏幕的左上角

三 .NSSize

如size之名,是用来储存宽度和高度的,他的三中定义方式

  NSSize s1 = CGSizeMake(100,50);

    NSSize s2 = NSMakeSize(100,50);

    CGSize s3 = NSMakeSize(200,60);

四.NSString 和NSMutableString

 用来创建字符串类型,NSString字符串不可变,NSMutableString用来创建可以增删的可变字符串.

1.NSString创建字符串常用方法:


     
    NSString *s1 =@"sdf  ";

NSString *s2 = [[NSString alloc] initWithString:@"jack"];

NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d", 10]; // C字符串 --> OC字符串 NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"]; // OC字符串 --> C字符串 const char *cs = [s4 UTF8String]; // NSUTF8StringEncoding 用到中文就可以用这种编码 NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];

NSUTF8StringEncoding只需要注意的是中文UTF8编码,一般IOS中文档乱码就是没有在windows下使用UTF8编码

 从文件中取出字符串的方式

NSString *path = @"/Users/apple/Desktop/test.txt";   
NSString *string = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
若URL中读取注意文档路径三个斜杠,如
NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/1.txt"];
还有一般将url单独定义

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];  
NSString *string = [[NSString alloc] initWithContentsOfURL:url   
encoding:NSUTF8StringEncoding error:nil];
将字符串写入文件的方式
NSString *string = @"字符串";  
NSString *path = @"/Users/apple/Desktop/abc.txt";  
[string writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];

2.NSMutableString的一些操作

appendstring 方法:向字符串尾部添加一个字符串。

appendFormat方法:向字符串尾部添加多个类型的字符串,可以添加任意数量与类型的字符串。

- (void)viewDidLoad  
{  
    [super viewDidLoad];  
     NSMutableString * str = [[NSMutableString alloc] init];       //添加普通的字符串  
    [str appendString:@"aaa"];  //添加字符串 整型 字符型  
    [str appendFormat:@"我的名字:%@ 我的年龄:%d 我的邮箱:%s",@" MOMO", 25,"xuanyusong@gmail.com"];  
      NSLog(@"str = %@",str);       
}  
删除用的方法 

stringWithString 方法:用于创建字符串初始化赋值

rangeOfString方法:传入字符串返回一个在该字符串中的范围 也可以写 NSMakeRange(0, 3) 意思是范围在字符串0位到第3

deleteCharactersInRange:删除字符串 参数为Range 就是删除的范围。

- (void)viewDidLoad  
{  
    [super viewDidLoad];   //创建字符串  
    NSMutableString *str = [NSMutableString stringWithString:@" MOMO 将行~"];  
       //删除字符串中含"MOMO"的字符  
    [str deleteCharactersInRange: [str rangeOfString: @"MOMO"]];      
      
    NSLog(@"str = %@",str);  
      
}  
插入方法 nsertString 方法:第一个参数   插入的字符串对象,   第二个参数   插入的位置。
 [str insertString:@"我是小尾巴```" atIndex:10];  
还有拷贝与类型转换功能.


五 NSArray

用来存储列表,不可变的数组 与NSString 可变数组为NSMutableArray

创建过程

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose",@"jim", nil];

一些操作方法

// 添加元素
    [array addObject:[[Person alloc] init]];
    
    [array addObject:@"jack"];
    
    // 删除元素
     [array removeAllObjects];
    // 删除指定的对象
     [array removeObject:@"jack"];
遍历有多种方法,普通遍历 快速遍历 block遍历. 前两种用的是for循环

这里block遍历为

   [array enumerateObjectsUsingBlock:
   // 每遍历到一个元素,就会调用一次block
     // 并且当前元素和索引位置当做参数传给block
     ^(id obj, NSUInteger idx, BOOL *stop)
     {
         NSLog(@"%ld - %@", idx, obj);
        if (idx == 0)
         {  // 停止遍历
             *stop = YES;
         } 
     }];

六  NSSet 

相当于没有顺序的NSArray集合

 NSSet *s = [NSSet set]; //NSSet的创建
    NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose", @"jack2",@"jack3",nil];
     // 随机拿出一个元素
    NSString *str =  [s2 anyObject];
      NSLog(@"%@", str);//随机

七.NSDictionary 字典类型

包含两种属性

key 和 索引 ,可以通过字典名[key]快速访问字典

代码如

NSArray *persons = @[@{@"name" : @"rose", @"qq" : @"767567"},
    @{@"name" : @"jim", @"qq" : @"423423"},
    @{@"name" : @"jake", @"qq" : @"123123213"}
    ];









---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值