黑马程序员_OC Foundation框架简介

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

    学习.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等。

在大体上可以分为以下几大类:

  1. 值对象
  2. 集合
  3. 操作系统服务:文件系统、URL、进程通讯
  4. 通知
  5. 归档和序列化
  6. 表达式和条件判断
  7. Objective-C语言服务
2、Foundation框架的使用

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培训、期待与您交流! -------



 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值