`
大灰狼94灰_
  • 浏览: 12259 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

一些苹果提供的常用的基本框架解释(未完待续)

阅读更多

 

1.CAF(Core Audio Format

它是苹果公司开发的音频格式,兼容于Mac OS X 10.4和更高版本,Mac OS X 10.3需要安装QuickTime 7,该格式也广泛存在于iOS软件中,开发CAF格式是为了克服旧的数字音频格式,如AIFF和WAV的限制,提供音频容器以便包含许多不同的音频格式、元数据跟踪等,该格式也方便在QuickTime上播放,iOS支持的音频格式非常丰富,除了CAF之外还有WAV、MP3、M4A、IMA4等常见格式。

iPhone SDK提供了AVFoundation.framework和AudioToolbox.framework等framework来帮助开发者开发各种音频软件,使用这些框架可以非常方便地进行声音的播放、控制、元数据的管理。

以下代码演示使用AVAudioPlayer类来播放.mp3音乐文件。

//  CoreAudioAppDelegate.h
#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>

@interface CoreAudioAppDelegate : NSObject
       <UIApplicationDelegate,AVAudioPlayerDelegate> {
    UIWindow *window;
 SystemSoundID soundID;
 AVAudioPlayer *player; 
 SoundEffect *erasingSound;
 SoundEffect *selectSound;  
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) AVAudioPlayer *player;
- (IBAction)playCaf:(id)sender;
- (IBAction)playMp3:(id)sender;

@end

//  CoreAudioAppDelegate.m

- (IBAction) playCaf:(id)sender{
 [erasingSound play];
 [selectSound play]; 
}

- (void)pause {
 [player pause]; 
 AudioSessionSetActive(false);
}

- (void)play { 
 [player play]; 
 UInt32 category = kAudioSessionCategory_MediaPlayback;
    AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (category), &category);
    AudioSessionSetActive (true); 
}

- (IBAction)playMp3:(id)sender{
 if (!player) {
  NSError *error = nil;
  NSString *path = [[NSBundle mainBundle] pathForResource:@"dream" ofType:@"mp3"];
  NSURL *url = [NSURL fileURLWithPath:path];  
  player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error: &error];
  player.delegate = self;
 }
 
 if (player.playing) {
  [self pause];
 } else if (player) {
  [self play];
 }
 
}

- (BOOL)application:(UIApplication *)application didFinishLaunching WithOptions:(NSDictionary *)launchOptions {   
  NSBundle *mainBundle = [NSBundle mainBundle]; 
 erasingSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Erase" ofType:@"caf"]];
 selectSound =  [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Select" ofType:@"caf"]];  
    [window makeKeyAndVisible];
   
    return YES;
}

 

2.Core Services 框架

Core Services层为所有的应用程序提供基础系统服务。可能应用程序并不直接使用这些服务,但它们是系统很多部分赖以建构的基础。

高阶特性

下面的部分描述一些比较常见特性,也许您正打算让您的应用程序支持这些特性。

块对象

iOS 4.0引入了块对象。块对象是C级别的构造,您可以在C或Objective-C代码中使用快对象。从本质上说,块对象本质上是一个匿名函数加上该函数的伴随数据。有些时候,其他语言也称块对象为 closure或者lambda。块对象非常适用于回调函数。如果您需要有很便捷的方法将执行代码和相关数据组合在一起,块对象也是很好的选择。

在 iOS系统中,块对象通常用于下述场合:

作为委托或委托方法的替代品。

作为回调函数的替代品。

用于实现一次性操作的完成处理器。

简化在群体所有子项上迭代执行某种任务的操作。

配合分发队列。可用于执行异步任务。

如需了解块对象及其使用方式,请查看块对象简短实践指南 。如需进一步了解块对象, 请查看块对象编程论述 。

Grand Central Dispatch

iOS 4.0引入了 Grand Central Dispatch (**),它是BSD级别的技术,可用于在应用程序内管理多个任务的执行。**技术将异步编程模型和高度优化内核结合在一起,可作为多线程的便捷(且更高效)替代。同时,它也为许多种底层任务( 例如读写文件描述符、实现定时器、监视信号和处理事件等)提供替代方案。

如需进一步了解在应用程序内使用**的方式,请查看并发编程指南 。如果需要了解特定**函数的信息,请查看Grand Central Dispatch (**)参考 。

应用程序内购买(In App Purchase)

iOS 3.0引入了应用程序内购买功能。通过该功能,您可以在应用程序内出售内容或服务。该功能使用Store Kit框架来实现,它可以为使用iTunes账户进行的财务交易的处理提供基础支持,应用程序只需处理用户体验及待售内容或服务的展现。

如果需要进一步了解iOS如何支持应用程序内购买功能,请参考应用程序内购买编程指南 。如需进一步了解 Store Kit框架,请参考“Store Kit框架” 。

定位服务

应用程序可使用Core Location框架提供的接口追踪用户位置。此框架利用当前可用的硬件无线电波(包括Wi-Fi、蜂窝无线或者GPS)定位用户的当前位置。应用程序可以对框架提供的信息进行裁剪,然后再将其发送给客户, 或是用于实现某些特定功能。举个例子,社交应用程序允许您找到附近其他应用程序用户,然后再与之进行通讯。

如需进一步了解如何使用定位服务,请阅读方位感知编程指南 。如需进一步了解Core Locatio框架,请阅读“Core Location框架 ”。

SQLite

SQLite库允许开发者将一个轻量级SQL数据库嵌入到应用程序,而且开发者不需要运行独立的远程数据库服务器进程。在此之后,开发者可以在应用程序中创建本地数据库文件,管理文件中的表和记录。虽然SQLite数据库出于通用目的而设计,但它还是针对数据库记录的快速访问做过优化。

用于访问SQLite库的头文件位于

  1. <iOS_SDK> 
  2. /usr/include/sqlite3.h 

在该路径中, 是Xcode安装目录中目标SDK的路径。如果需要更多如何使用SQLite的信息, 请访问http://www.sqlite.org网站。

XML 支持

Foundation框架支持使用NSXMLParser类从XML文档中解析元素,而libXML2库则为操作XML内容提供支持。 libXML2库是开源的,它可以让您快速地解析或写入任意的XML数据,也可将XML内容转化为HTML文件。

用于访问libXML2库的头文件位于 /usr/include/libxml2/。

在该路径中, 是Xcode安装目录中目标SDK的路径。如要更多libXML2的使用信息, 请访问 http://xmlsoft.org/index.htm 网站。

Core Services 框架

下述部分描述Core Services层的框架以及这些框架提供的服务。

Address Book 框架

Address Book框架 (AddressBook.framework)支持编程访问存储于用户设备中的联系人信息。如果应用程序使用到联系人信息,则可通过该框架访问并修改用户联系人数据库的记录。举个例子,通过使用该框架,聊天程序可以获取一个联系人列表,利用此列表初始化聊天会话,并在联系人视图显示列表的联系人。

如果需要进一步了解 Address Book框架的功能,请访问Address Book 框架参考 。

CFNetwork 框架

CFNetwork框架 (CFNetwork.framework)提供一组高性能基于C语言的接口,它们为使用网络协议提供面向对象抽象。通过这些抽象,您可以对协议栈进行更精细的控制,而且可以使用诸如 BSD socket这类底层结构。您也可以通过该框架简化诸如与FTP或HTTP服务器通讯以及DNS主机解析这类任务。下面列举一些可以使用 CFNetwork框架执行的任务:

使用BSD sockets

使用SSL或TLS创建加密连接

解析DNS主机

使用HTTP,校验HTTP以及HTTPS服务器。

使用FTP服务器

发布、解析并浏览 Bonjour服务。

CFNetwork理论及实现都以 BSD socket为基础。如需更多如何使用CFNetwork框架的信息, 请访问CFNetwork编程指南以及CFNetwork框架参考。

Core Data 框架

iOS 3.0引入Core Data框架(CoreData.framework)。Core Data框架是一种管理模型-视图-控制器应用程序数据模型的技术,它适用于数据模型已经高度结构化的应用程序。通过此框架,您再也不需要通过编程定义数据结构,而是通过Xcode提供的图形工具构造一份代表数据模型的图表。在程序运行的时候,Core Data框架就会创建并管理数据模型的实例,同时还对外提供数据模型访问接口。

通过Core Data管理应用程序的数据模型,可以极大程度减少需编写的代码数量。除此之外,Core Data还具有下述特征:

将对象数据存储在SQLite数据库以获得性能优化。

提供NSFetchedResultsController类用于管理表视图的数据。

管理undo/redo操作。

属性值校验支持。

支持对数据变化进行传播,并且不会改变对象间的关联。

支持对数据进行归类,过滤,并支持对内存数据进行管理。

如果您正在开发新应用程序或打算对某个现有的程序进行大幅度更新,请考虑使用Core Data。如果需要了解如何在iOS应用程序中使用Core Data,请参考iOS Core Data 教程 。如果需要进一步了解Core Data框架中的类,请参考Core Data框架参考 。

Core Foundation 框架

Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。下面列举该框架支持进行管理的数据以及可提供的服务:

群体数据类型 (数组、集合等)

程序包

字符串管理

日期和时间管理

原始数据块管理

偏好管理

URL及数据流操作

线程和RunLoop

端口和soket通讯

Core Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但Foundation框架提供Objective-C接口。如果您将Foundation对象和Core Foundation类型掺杂使用,则可利用两个框架之间的 “toll-free bridging”。所谓的Toll-free bridging是说您可以在某个框架的方法或函数同时使用Core Foundatio和Foundation 框架中的某些类型。很多数据类型支持这一特性,其中包括群体和字符串数据类型。每个框架的类和类型描述都会对某个对象是否为 toll-free bridged,应和什么对象桥接进行说明。

如需进一步信息,请阅读Core Foundation 框架参考。

Core Location 框架

Core Location框架 (CoreLocation.framework)可用于定位某个设备当前经纬度。它可以利用设备具备的硬件,通过附近的GPS、蜂窝基站或者WiFi信号等信息计算用户方位。Maps应用程序就是利用此功能在地图上显示用户当前位置。您可以将此技术结合到应用程序,以此向用户提供方位信息。例如,应用程序可根据用户当前位置搜索附近饭店、商店或其他设施 。

在iOS 3.0系统中,该框架开始支持访问iOS设备(具有相应硬件的设备)的方向信息。

在iOS 4.0系统中,该框架开始支持低能耗的方位监视服务,该服务利用蜂窝基站跟踪用户方位。

如需了解Core Location框架中的类,请参考Core Location 框架参考 。

Core Media 框架

iOS 4.0引入了Core Media框架 (CoreMedia.framework)。此框架提供AV Foundation框架使用的底层媒体类型。只有少数需要对音频或视频创建及展示进行精确控制的应用程序才会涉及该框架,其他大部分应用程序应该都用不上。

如需进一步了解此框架的函数和数据类型,请阅读Core Media 框架参考。

Core Telephony 框架

iOS 4.0引入了Core Telephony框架(CoreTelephony.framework)。此框架为访问具有蜂窝无线的设备上的电话信息提供接口,应用程序可通过它获取用户蜂窝无线服务的提供商信息。如果应用程序对于电话呼叫感兴趣,也可以在相应事件发生时得到通知。

如需进一步了解如何使用该框架的类和方法,请阅读Core Telephony框架参考。

Event Kit 框架

iOS 4.0引入了 Event Kit框架 (EventKit.framework)。此框架为访问用户设备的日历事件提供接口。您可以通过该框架访问用户日历中现有事件,可以增加新事件。日历事件可包含闹铃,而且可以配置闹铃激活规则。

如需进一步了解如何使用该框架的类和方法,请阅读Event Kit 框架参考 ,也可参考Event Kit UI 框架。

Foundation 框架

Foundation框架 (Foundation.framework)为 Core Foundation框架的许多功能提供Objective-C封装。您可以参考Core Foundation框架了解前面对Core Foundation框架的描述。 Foundation框架为下述功能提供支持:

群体数据类型 (数组、集合等)

程序包

字符串管理

日期和时间管理

原始数据块管理

偏好管理

URL及数据流操作

线程和RunLoop

Bonjour

通讯端口管理

国际化

正则表达式匹配

缓存支持

如需进一步了解如何使用该框架的类和方法,请阅读Foundation框架参考 。

Mobile Core Services 框架

iOS 3.0引入了Mobile Core Services框架 (MobileCoreServices.framework)。此框架定义统一类型标识符 (UTIs)使用的底层类型。

如需进一步了解此框架定义的类型,请查看统一类型标识符参考 。

Quick Look 框架

iOS 4.0引入Quick Look框架(QuickLook.framework),应用程序可以用过该框架预览无法直接支持查看的文件内容。如果应用程序从网络下载文件或者需处理来源未知的文件,则非常适合使用此框架。因为应用程序只要在获得文件后,调用框架提供的视图控制器就可以直接在界面中显示文件的内容。

如需进一步了解该框架的类和方法,请参考Quick Look框架参考。

Store Kit 框架

iOS 3.0引入Store Kit 框架(StoreKit.framework),此框架为iOS应用程序内购买内容或服务提供支持。例如,开发者可以利用此框架允许用户解锁应用程序的额外功能。或者假设您是一名游戏开发人员,则可使用此特性向玩家出售附加游戏级别。在上述的两种情况中,Store Kit 框架会处于交易过程中和财务相关的事件,包括处理用户通过 iTunes Store账号发出的支付请求并且向应用程序提供交易相关信息。

Store Kit框架主要关注交易过程中和财务相关的事务,目的是为了确保交易安全准确。应用程序需要处理交易事物的其他因素,包括购买界面和下载(或者解锁)恰当的内容。通过这种任务划分方式,您就拥有购买内容的控制权,可以决定希望展示给用户的购买界面以及何时向用户展示这些界面,同时也可以决定和应用程序最匹配的交付机制。

如需进一步了解Store Kit框架的使用方式,请查看应用程序内购买编程指南以及Store Kit 框架参考 。

System Configuration 框架

System Configuration框架(SystemConfiguration.framework) 可用于确定设备的网络配置。您可以使用该框架判断Wi-Fi或者蜂窝连接是否正在使用中,也可以用于判断某个主机服务是否可以使用。

如需进一步了解此框架提供的接口,请查看System Configuration框架参考。如需通过此框架获取网络信息的示例,请访问 Reachability样例工程。

0
0
分享到:
评论

相关推荐

    ios常用三方框架

    最后,`CoreData`虽不是第三方框架,但作为苹果提供的数据持久化解决方案,常常与第三方库如`FMDB`(SQLite wrapper)一起使用,以实现更高效的数据管理。 以上只是众多iOS第三方框架中的一部分,每个框架都有其独特...

    Navigation + Tab Bar 常用组合框架

    首先,`Navigation Controller(导航控制器)`是苹果的UIKit框架中的一种容器视图控制器,它提供了一个带有返回按钮的栈式导航界面。当你点击屏幕上的按钮或执行某些操作时,新的视图控制器会被压入导航控制器的栈中...

    swift-OpenGL-ES使用苹果提供的GLKit框架实现

    在苹果的平台上,为了简化OpenGL-ES的使用,苹果提供了一个名为GLKit的框架,它为开发者提供了很多便利的功能。 **OpenGL-ES概述** OpenGL-ES是OpenGL的一个子集,专为嵌入式系统设计,如智能手机、平板电脑和游戏...

    近期IOS中最常用的几个UI框架

    以下是对标题和描述中提及的几个最常用UI框架的详细说明: 1. **Swipeable Table View Cells**: 这种框架允许用户通过左右滑动来触发特定操作或展示更多的信息。例如,它可能用于应用设置,当用户滑动单元格时,...

    iOS常用框架

    本文将详细介绍“iOS常用框架”中的几个关键组件,包括轮播、瀑布流、网络请求、自适应布局以及顶部菜单等。 1. **轮播(Carousel)框架**: 轮播通常用于展示一系列图片或内容,例如广告、推荐产品等。在iOS中,...

    苹果开发脚本iphone开发框架2

    苹果 apple iphone的开发脚本,appstore里的开发模式,自由程序者,xcode cocoa等等

    ios7风格前端框架

    例如,它可能提供了类似滑动切换、下拉刷新等iOS特有的手势支持,以及苹果设计中常用的圆角、半透明效果和空间布局。 **3. 易用性提升** 易用性是衡量任何框架价值的重要标准。iOS7风格前端框架通过简化API接口和...

    苹果手机一些常用聊天工具的删除聊天记录恢复教程

    苹果手机一些常用聊天工具的删除聊天记录恢复教程

    Grading_fruits_image_processing-master_成熟度_苹果颜色分级_苹果_苹果成熟度_color

    虽然项目主要关注颜色,但苹果的形状也可能提供一些关于成熟度的信息。可以使用边缘检测算法,如Canny算法或霍夫变换,来识别苹果的轮廓,并通过形状特征如面积、周长、圆度等来辅助判断。 为了实现苹果的自动分级...

    ios 数据请求框架 图片请求框架 刷新框架 kvc框架,进度条框架

    另一款类似框架是UIRefreshControl,它是苹果官方提供的下拉刷新控件,但功能相对简单。 4. **KVC框架**:Key-Value Coding(KVC)是Objective-C的一个特性,允许我们通过键来间接访问对象的属性,而无需直接调用...

    全新苹果CMS二开APP源码完整版

    全新苹果CMS二开影视APP源码完整版,程序采用的前后端分离、且后端所用的是最主流的苹果cms框架,是基于ThinkPHP和Layui的多功能开源免费内容管理系统。 苹果CMS功能非常强大,模块丰富。可以用于搭建专业的视频站...

    苹果系统常用小工具合集

    总的来说,"苹果系统常用小工具合集"旨在为用户提供一套全面的解决方案,覆盖日常使用、系统优化、工作效率提升等多个方面。通过这样的工具包,用户不仅可以更好地管理和维护自己的Mac,还可以享受到更加便捷、高效...

    关于 Swift 的基本概念、特性、常用框架和应用领域的简要介绍

    ### 关于 Swift 的基本概念、特性、常用框架和应用领域的详细介绍 #### 一、Swift 的基本概念 **1. 类型安全:** Swift 作为一种类型安全的语言,在编译阶段就能检测到潜在的类型错误,这有助于开发者在早期发现并...

    关于 Objective-C 的基本概念、特性、常用框架和应用领域的简要介绍

    Objective-C与苹果的Cocoa和Cocoa Touch框架紧密结合,这两个框架提供了丰富的API来帮助开发者快速构建应用程序。 - **Cocoa**:这是一个专门为macOS设计的框架,包含了大量用于开发桌面应用程序的API。Cocoa框架...

    swift-IOS常用框架集合

    下面我们将详细讨论一些Swift中常用的UI框架和控件。 1. UIKit:这是iOS开发的基础框架,包含了大量的UI元素和控制,如按钮、标签、视图、滑块等。UIKit还负责处理事件响应和视图层次结构管理。 2. SwiftUI:苹果...

    macadmin页面框架

    这个框架主要适用于开发用于后台管理系统的Web应用,它提供了丰富的组件和工具,使得开发者能够快速构建功能齐全且视觉上吸引人的管理界面。以下是关于这个框架的一些关键知识点: 1. **响应式设计**:MacAdmin页面...

    iphone 程序简单框架

    - Core Data是苹果提供的对象关系映射框架,用于本地数据持久化。SQLite数据库、Plist文件或用户 Defaults 也是常见的数据存储方式。 - JSON 和 XML 等网络数据可以通过`NSURLSession`或第三方库如AFNetworking...

    基于Objective-C的苹果本地持久化框架DoPersistenceFramework设计与实现源码

    该项目的核心是使用Objective-C开发的苹果本地持久化框架DoPersistenceFramework,它包含了73个文件,涵盖20个.m源文件、19个.h头文件、6个XML配置文件、5个plist文件以及少量其他辅助文件。项目结构旨在提供一个...

    分享一个仿苹果风格的Web桌面模板~~

    它旨在为用户提供类似Mac OS的浏览体验,让用户在网页上也能感受到苹果设备的流畅与美观。 【描述】:“这是我开发的一款仿苹果风格的web桌面模板,非常精美。特意公开出来供大家使用,希望大家喜欢。” 开发者...

    精通iOS框架

    iOS框架是构成iOS系统的核心组件之一,它是由Apple官方提供的一系列软件开发工具包(SDK),旨在帮助开发者更高效地构建iOS应用。这些框架包含了预编译好的代码库、API接口以及文档资料等,通过调用这些框架中的方法...

Global site tag (gtag.js) - Google Analytics