IOS之Objective-C学习笔记(五)

IOS之Objective-C学习笔记(五),第1张

概述   今天记录一下学习Cocoa里有关里的Foundation框架。 1.首先Cocoa是由两个不同的框架组成的:Foundation Kit和Application Kit,而Application Kit包含了所有的用户接口对象和高级类,Foundation框架中则有很多有用的,面向数据的低级类和数据类型。 2.范围的作用,看看一下结构体:         [plain] view plain

   今天记录一下学习Cocoa里有关里的Foundation框架。

1.首先Cocoa是由两个不同的框架组成的:Foundation Kit和Application Kit,而Application Kit包含了所有的用户接口对象和高级类,Foundation框架中则有很多有用的,面向数据的低级类和数据类型。

2.范围的作用,看看一下结构体:        

[plain] view plaincopy           typedef struct _NSRange {                     unsigned int location;                     unsigned int length;              }NSRange;//其中location表示字段存放该范围的起始位置,length表示是该范围内所含元素的个数。  

           例如:字符串”Objective-C is a cool language“中,单词”cool“可以用loaction为17,length为4的范围来表示。也许由于Locatio字段未被初始化,所以它 的值可以是NSNotFound,用来表示无意义范围。

           可以用3种方式创建新的NSRange:

copy           (1)直接给字段赋值                   NSRange range:                   range.location = 17;                   range.length = 4;             (2)应用C的聚合结构赋值机制                  NSRange range = {17,4};             (3)使用Cocoa提供的一个快捷函数NSMakeRange();                  NSRange range = NSMakeRange(17,4);  
 

3.几何数据类型:

copy             (1) NSPoint和NSSize,首先看看它们的结构体:                     typedef struct _NSPoint{                                float x ;                                float y;                      }NSPoint;                     typedef struct _NSSize{                            float wIDth;                            float height;                     }NSSIze;               (2)矩形类型NSRect                      typedef struct _NSRect{                              NSPoint origin;                              NSSize size;                       }NSRect;               (3)它们也一样有:创建数据类型的快捷函数,NSMakePoint(),NSMakeSize()和NSMakeRect().  
 

4.字符串类型 *** 作:           

copy copy        (1)创建字符串,除了直接赋值创建Nsstring字符串外,还可以通过:stringWithFormat方法来通过               格式字符串和参数创建Nsstring的                 +(ID) stringWithFormat : (Nsstring *)format, .........例子如下: 
              Nsstring *height;                 height = [Nsstring stringWithFormat : @"Your height is %d feet,%d inches",5,11];                得到的字符串是“Your height is 5 feet, 11inches”. 
                 这里需要注意的地方有两个,第一就是这个方法后面的省略号,表示这个方法可以接收多个以逗                  号隔开的其他参数,第二就是方法声明的开头是一个+号,它代表创建该类的类对象,我们把这                  种方法叫做“工厂方法”。         (2)获得字符串大小:length,使用方法如下                 unsigned int length = [height length];                 此方法可以准确无误地处理国际字符串。如俄文,中文,日文等。          (3)Nsstring字符串比较 *** 作:                 1.-(BOol) isEqualToString: (Nsstring *)aString; 使用如下                      Nsstring *thing1 = @“hello 2”;                      Nsstring *thing2 ;                      thing2 = [Nsstring stringWithFormat : @"hello %d",5 ];                      if ([thing1 isEqualToString  : thing2]){                            NSLog(@"They are the same!");                      }//注意此方法是比较字符串指针向的值,而“==”比较的是指针值。                 2.-(NSComparisonResult)compare : (Nsstring *)string;                    用法如下,首先先看看NSComparisonResult结构体:                            typedef enum _NSComparisonResult{                                  NSOrderedAscending = -1;                                  NSOrderedSame,                                  NSOrderedDEscending                            }NSComparisonResult;                       例子:[@"zoinks"  compare : @"jinIEs"]将会返回NSOrderedDescending                     (表示左侧的字符在右侧字符的后面)                  3.-(NSComparisonResult) compare : (Nsstring *)string                                         options : (unsigned)mask;                     options参数是一个位掩码,你可以使用位或运算符来添加选项标记。例子如下:                     if( [ thing1 compare : thing2                                  options : NSCaseInsensitiveSearch | NSNumericSearch ]
                     == NSOrderedSame)                     { NSLog (@"They match!") ; }              (4)字符串内是否包含别的字符串                  1 .-(BOol)hasPrefix:(Nsstring *)aString;//检查字符串是否以另一个字符串开头                     -(BOol)hasSuffix:(Nsstring *)aString;//检查字符串是否以另一个字符串结尾                     -(NSRange)rangeOfString: (Nsstring *)aString ;//将rangeOfString:发送给一个                   Nsstring对象时,传递的参数是要查找的字符串,它会返回一个NSRange struct 来告诉你                   与这个字符串相匹配的 部分在哪里以及能够匹配上的字符串个数。                      例子:NSRange range;                                     Nsstring *filename = @"draft-chapter.pages";                                     range = [filename rangeOfString : @"chapter"];                       返回的range.start为6,range.length为7.如果传递的参数在接收字符串中没有找到,那                     range.start则等于NSNotFound。  
 

5.可变性,Nsstring是不可变的,这并不意味着你不能 *** 作它们。Cocoa提供了一个Nsstring的子类,叫做NSMutableString(可以改变的字符串)

copy    copy (1)-(ID)stringWithCapacity: (unsigned)capacity; //注意这个容量只是给NSMutableString的一个建议。                     例子:string = [NSMutableString stringWithCapcity : 42];   (2)有了一个可变的字符串,那就可以对它执行各种 *** 作了:                   1.-(voID)appendString : (Nsstring *)aString;                   2.-(voID)appendFormat : (Nsstring *)format , ......;                  例子:NSMutableString *string;                             string = [NSMutableString stringWithCapacity: 50];                             [  string appendString : @"Hello  there"];                             [ string appendFormat : @"human %d!",39 ];                          这段代码的运行结果是string被赋值为“Hello there human 39!”                   3.-(voID)deleteCharactersInRange : (NSRange) range;                          我们经常会把deleteCharactersInRange:和rangeOfString:连在一起使用,例子:                           NSMuableString *frIEnds;                           frIEnds = [ NSMutableString  stringWithCapacity: 50];                           [ frIEnds appendString : @"JAmes  BethLynn  Jack  Evan" ];                         接下来,找到JAck的字符范围:                           NSRange  jackRange;                           jackRange = [frIEnds rangeOfString: @"Jack"];                           jackRange.length++;//这句的意思是,把后面的空格也算上。                           [ frIEnds deleteCharactersInRange : jackRange ];                          结果为:“James  BethLynn  Evan”  

    好了,今天就写到这里,继续会有更新,转载请注明:http://blog.csdn.net/yuzhiboyi

总结

以上是内存溢出为你收集整理的IOS之Objective-C学习笔记(五)全部内容,希望文章能够帮你解决IOS之Objective-C学习笔记(五)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058467.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存