- Cocoa是由许多不同的框架组成的,最常用于桌面端应用程序的是Foundation 和Application Kit,她包含了所有的用户界面UI对象和高级类.
- iOS平台上的应用程序还需要用到User Interface Kit (UI Kit).
- Foundation是App KI和UI Kit的基础,拥有100多个类,所有的类都可以在安装文档中找到,
Xcode顶部菜单栏的Help-Developer Documentation可以查看这些文档.
常用的数据类型 - 范围-结构体NSRange
typedef struct_NSRang
{
unsigned int location; //存放的是该范围的起始位置,
//可以使用NSNotFound表示没有范围,如变量没有初始化
unsigned int length; // 该范围内所含元素的个数
}NSRange;
- NSRange可以表示相关事物的范围.创建NSRange的三种方式:
- 直接给字段赋值:
NSRange range;
range.location = 2;
range.length = 4;
- 应用C语言的聚合结构赋值机制
NSRange range = {2,4};
- 利用Cocoa提供的快捷函数NSMakeRange(),可以在方法调用中作为参数传递,
NSRange range = NSMakeRange(2,4);
[anObject flarbulateWithRange : NSRange(13,15)];
- 几何数据类型
处理几何图形的数据类型都带有CG前缀,(Core Graphics), 用来进行2D渲染. CG 是用C语言写的,可以使用C语言的数据类型.
CGPoint是笛卡尔平面中的一个坐标(x,y)
struct CGPoint
{
float x;
float y;
};
CGSize存储长度和宽度
struct CGSize
{
float width;
float height;
};
- 创建这些数据类型的快捷函数: CGPointMake(), CGSizeMake(),CGRectMake();
数据类型使用C的struct结构而不是对象的原因是性能,OC的对象都是 动态分配的,会消耗大量的时间和系统开销. - 字符串
创建字符串
+(id) stringWithFormat : (NSString *) format,..;
NSString *height;
height = [NSStrign stringWIthFormat : @"height is %d feet, %d inches",5,10];
得到的字符串是
height is 5 feet, 10 inches
- 类方法和实例方法的区别
类方法
+号开头表示类方法,在类方法中只只用类名调用,不依赖于任何对象的方法,类似于C语言的static关键字 static函数.
类方法的调用:[类方法名 + 类名]
[类方法的注意点]
1.类方法可以调用类方法
2.类方法不可以调用实例方法,但是类方法可以可以通过创建对象来访问实例方法
3.类方法不可以使用实例变量,但是可以使用self,因为self不是实例变量,是一个指针
4.类方法作为消息,可以被发送到类或者对象里去(就是可以通过类,或者对象调用类方法的意思)
实例方法
-号开头表示实例方法(又称为对象方法),只能用对象调用,依赖于对象的方法.
实例方法的调用:首先需要实例化一个类 举个例子: Student *stu = [[Student alloc]init];
调用实例方法:[stu showAge]; stu是实例对象的名字 showAge是方法名
注意:例子实例化该类时,调用了构造函数init,并且该类的构造函数调用[super init]的返回值不等于该类的self.
字符串的大小length
返回的是字符串中的字符个数,可以统计各种语言的字符串.
- (NSUIInteger) length;
NSUIIntegr length = [height length];
也可以在表达式中使用
if([height length] > 4)
NSLog(@"OK");
- 字符串比较
- isEqualToString可以比较对象和字符串;
- (BOOL)isEqualToString : (NSString *) sString;
NSString *thing1 = @"hello";
NSString *thing2 = [NSString stringWithFormat : @"hello %d", 5];
if (thing1 isEqualToString : thing2)
{
NSLog(@"same");
}
compare可以逐个比较字符串,返回的是一个枚举类型的结果
- (NSComparisonResult) compare : (NSString *) aString;
enum
{
NSOrderedAscending = -1,
NSOrderedSame,
NSOrderedDescending
};
typedef NSInteger NSComparisonResult;
isEqualToString 是查看字符串是否相等, == 是判断两个字符串的额指针数值.
不区分大小写的比较
使用compare