学习.net开发,我们是在Microsoft Visual Studio(简称VS)平台上开发的,Microsoft Visual Studio是微软公司旗下最重要的软件集成开发工具产品,是每个 Win 平台的软件开发者必备的工具,VS平台工具里面包含了多种框架,如.net framework框架。那学习ios开发也是一样的,在xcode工具平台开发,使用Foundation框架和UIKit框架进行开发。
1、Foundation框架概述
框架是封装起来的一个集合,里面包括把许多类、方法、函数、文档按照一定的逻辑组织起来的,在编写程序的时候可以直接调用,这样就是程序开发变得简捷和方便。
Foundation框架主要定义了一些基础类,供程序员使用,Foundation框架中所有的类的都继承NSObject这个对象。
在Foundation中定义了很多常用结构体类型来简化我们的日常开发,这些结构体完全采用Objective-C定义,和我们自己定义的结构体没有任何区别,之所以由框架为我们提供完全是为了简化我们的开发。常用的结构体有NSRange、NSPoint、NSSize、NSRect等。
在大体上可以分为以下几大类:
- 值对象
- 集合
- 操作系统服务:文件系统、URL、进程通讯
- 通知
- 归档和序列化
- 表达式和条件判断
- Objective-C语言服务
A首先在xcode工具平台进行开发时,会包括两个文件,一个是.m的文件,一个是.h的文件。
.m的文件是类的实现文件,参与编译过程,实现类中的声明,要想实现不同类,需要引用.h的文件头;
.h的文件时类的声明文件,所有类的声明全部写在这个文件中,声明类包括它的属性和行为。
B必须引用头文件#important <Foundation/Foundation.h>。
这个头文件就如我们C语言中头文件#include <stdio.h>,它们是预处理指令,使用了它们,才能把Foundation框架集里面已经定义封装好的方法、类才能使用。
用个小例子介绍:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSLog(@"Hello, World!");//打印输出
}
return 0;
}
这是我们学写程序通用的例子,输出hello,world。
在这个程序中我们简单了解到OC中字符串是以@符号开头的;NSLog是打印输出,并且自动换行,还会自带一些时间日期等信息,这和C语言中printf是有一定区别的。
总结:OC中所有关键字是以@符号开头的。
再者,OC程序是面向对象的,那就不可缺少的有类声明,类实例化和类实现。NSObjec是OC基础类,基本类(除了继承父类)都是继承于它的,而且是单继承。
声明类:以@interface 开头,以@end结尾。大括号内定义成员变量,行为一定要写在大括号外面,不要写在大括号内部。
@interface Soldier:NSObject
{
@public
NSString *_name;
int life;
int level
}
//行为,士兵开火
-(void)fireByGun:(Gun *) gun;
@end
实现类:以@implementation开头,以@end结尾,它们俩之间没有大括号。
@implementation Soldier
-(void)fireByGun:(Gun *)gun{
//枪射击
[gun shoot];
}
@end
对象的创建:需要调用类的静态方法alloc分配内存,要写上[],里面是类名和方法名,返回值用指针*来接收,也就是在OC对象中写上*。
Soldier *s = [Soldier new];
3、Foundation框架具体使用
A NSRange:这个结构体表示事物的范围,已字符串的字符范围或数组中的元素范围。
//创建NSRange的三种方式
//直接对字段赋值
NSRange range;
range.location = 30;
range.length = 10;
//使用函数
NSRange range = NSMakeRange(10,5);
//c语言数组似结构
NSRange range = {20,4};
location字段存放的是起始位置,length字段存放的是所含元素的个数。
B NSString:字符串常量,不可变的,必须前面加上@符号,如@“asjd”
//直接创建
NSString *name = @"abc";
//使用函数
NSString *name = [NSString stringWithFormat : @"name is %@", @"abc"];
C NSMutableString:可变字符串,可删除或增加字符
//创建对象
NSMutableString *name = [NSMutableString stringWithFormat : @"name is %@", @"abc"];
D NSArray:内容长度不可变 的数组,只能存储OC对象,不能存储C语言中的基本数据类型,如int,float等。
数组中最后一个元素为nil,表示数组结束。
//创建对象
NSArray *a = [NSArray arrayWithObjeccts:@"tom",@"abc",nil];
//获取长度
Long count = [array count];
//获取第一个包含obj元素的索引号
Long index = [array indexObject:@"tom"];
E NSMutableArray:是NSArray的子类,可修改数组元素和大小。
F NSDictionary:提供“键-值”对的集合;NSMutableDictionary:可变的字典对象。
G NSSet:单值对象的集合,操作包括搜索,添加,删除集合成员,比较两个集合,计算两个集合的交集和并集等。
H NSNumber:对基本数据类型进行封装,通过调用数字对象的类方法和对象方法,将基本的数据类型转换为数字对象。
更多的Foundation框架的使用还需要在以后学习开发过程中逐步体会。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------