OC:Foundation框架 1212

来源:互联网 发布:表格制作软件手机软件 编辑:程序博客网 时间:2024/05/06 15:25
Foundation框架

------ IOS培训、android培训、期待与您交流!-------



   Foundation框架是其他所有ios框架的基础

   Foundation框架包含了很多开发中常用的数据类型

   1>、结构体

   2>、枚举

   3>、类 

   要想使用Foundation中的数据类型,包含它的主文件即可#import<Foundation/Foundation.h>

一、结构体

    在main.h文件中 

    #import<Foundation/Foundation.h>

    int main()
    {
        /*结构体:是系统定义的结构体吗?

           NSRange (location length)  :表示范围

           NSPoint/ CGPoint

           NSSize/CGSize

           NSRect/CGRect   */  

      /*  struct Date{

           int year;

           int month;

           int day;

        }Date;

        struct Date d = {2011,9,01};

 或者struct Date d2 = {.mongth = 10,.year = 2012,.day = 01};*/

        //CGPoint p1 = NSMakePoint(10,10);

        CGPoint p2 = CGPointMake(10,10);//最常用

        NSString *str = NSStringFromPoint(p2);

        NSLog(@"");
  
        return 0;
     }

     - (void)range
     {
           @"i love oc";

       NSRange r1 = {2,4}; //不用

//love在@"i love oc"中的location和 length,这种方式不用

       NSRange r2 = NSMakeRange(2,4); //掌握

//NSMakeRange是Foundation自带的函数

       NSString *str = @"i  love oc";

NSRange range = [str rangeOfString:@"love"]; //love在str中的范围

    NSLog(@"loc = %d,length = %d",range.location,range.length);

     }

  总结:1、NSRange (location length) 是一个表示范围的结构体

       2、NSRange r2 = NSMakeRange(2,4); //掌握 

          1>、love在@"i love oc"中的location和 length

          2>、NSMakeRange是Foundation自带的函数

       3、查找某个字符串在str中的范围

          NSString *str = @"i  love oc";

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

          //love在str中的范围

          1>、如果在str中找不到这个字符串,返回length = 0;location = NSNotFound = -1(以整数形式打印)

          2>、

       4、NSPoint/CGpoint结构体:表示坐标位置

          struct CGPoint{

             CGFloat x;  //CGFloat相当于double

             CGFloat y;

          };

          typedef struct CGPoint CGPoint;

          typedef  CGPoint NAPoint;

          1>、用法:

              CGPoint p1 = NSMakePoint(10,10);

              CGPoint p2 = CGPointMake(10,10);//最常用

             这两种都可以,但是第二种比较常用

           2>把一个结构体转成字符串

           NSString *str = NSStringFromPoint(p1);

       5、NSSize/CGSize:表示UI元素的尺寸

          用法和NSPoint/CGpoint结构体一样

       6、NSRect/CGRect(CGPoint,CGSize) 

          用法: CGRect r1 = NSRectMake(0,0,100,50);

       
        7、CGPointEqualToPoint  //比较这两个点是否相同  

           CGRectEqualToRect   CGSizeEqualToSize

        8、CGRectContainsPoint //某个点是否在矩形范围内

           CGRectContainsPoint(CGRectMake(50,40,100,50),
                                CGPointMake(130,70)) 

          //判断右边的点在不在左边的范围,返回值是bool类型

二、字符串

    1、开发中常见的类

       NSString 子类:NSMutableString

       // 集合类
       NSArray 子类:NSMutableArray

       NSSet 子类:NSMutableSet

       NSDictionary子类:NSMutabledictionary

       NSDate      
 
       NSObject

    2、NSString 子类:NSMutableString

       NSString:不可变字符串

       NSMutableString:可变字符串

       在main.m文件中

        #import<Foundation/Foundation.h>

        int main()

        {/*字符串的创建*/

            NSString *s1 = @"4393683";

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

      NSString *s3 =[[NSString alloc] initWithFormat:@"abjk"];

      //C字符串——》OC字符串

   NSString *s4 =[[NSString alloc] initWithUTF8String:@"abjk"];

        /*  OC字符串——》C字符串

        const char *cs = [s4 UTF8String];  */

NSMutableString s7 = [[NSString alloc] initWithFormat:@"ab"];

          [s7 appendString:@"abcd"];

          [s7 deleteCharactersInRange:NSMakeRange(4,2)];

          [s7 rangeOfString:@"is"];

            return0;

         }
 
        小结:1>、字符串的创建

          NSString *s1 = @"4393683";   

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

      NSString *s3 =[[NSString alloc] initWithFormat:@"abjk"];

   NSString *s4 =[[NSString alloc] initWithUTF8String:@"abjk"];

   NSString *s5 =[[NSString alloc]

                   initWithContentsOfURL:url 

                   encoding:NSUTF8StringEncoding error:nil];

              2>、系统自带的方法一般都会有一个类方法跟对象方法配对

     3、NSArray 子类:NSMutableArray  //集合类

        1>、NSArray:不可变数组 NSMutableArray:可变数组

        2>、oc数组稚嫩存放oc对象,不能存放非OC对象类型,比如int、struct、enum等

        3>、NSArray中元素的创建

       NSArray *array = [NSArray array];//这个array永远是空数组

           NSArray *array2 = [NSArray arrayWithObject:@"jack"];
         
     NSArray *array3 = [NSArray arrayWithObject:@"jack",@rose,nil];

        //nil是数组元素结束的标志 前面的所有的元素都是数组元素

         4>、NSArray中元素的个数

             [array2 count];//用来计算array2中的元素个数

             //也可以用array2.count

          5>、NSArray中元素的访问

          [array3 objectAtIndex:1]//只返回array3中的array3[1]

          6>、快速创建一个NSArray数组

             NSArray *array4  = @[@"jack",@"rose",@"2849"];

          7>、快速遍历一个NSArray数组中的所有元素

             Person *p = [[Person alloc] init];

             NSArray *array = @[p,@"jack"];

             /* for(int i = 0;i<array.count,i++)

             {
                 NSLog(@"%@",array[i]);
              }    */
  
            for(id obj int array)//id obj代表数组中的每一个元素
            {
                 NSLog(@"%@",obj);

                 int i = [array indeaOfObject:obj];//代表obj在数组中的位置是i

             }//但是不知道这是当前第几个

            int i = [array indeaOfObject:obj];//代表obj在数组中的位置是i

           8>、遍历数组

                [array enumrateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop)];

            // 每遍历到一个元素,就会调用一次block

            //并且当前元素和索引位置当前参数传block
0 0
原创粉丝点击