IPhone os-----基本知识(学习iphone的请进)

来源:互联网 发布:手机以旧换新软件 编辑:程序博客网 时间:2024/06/01 07:42

macos上的各种组件(如下)

         Cocoa

         Media(媒体回放,绘图音频)

         CoreService(服务)

         CoreOS(核心系统)

macos上的组件移动手机上,在用户界面做了细微修改,使它们能够应付输入手势,为触摸控制做了定制,则iphoneos的组件如下:(上层的组件依赖于下层组件)

      CocoaTouch

      Media(媒体回放,绘图音频)

     CoreService(核心服务层)

     CoreOS(核心层)

下面是详细的各个部分

1.CoreOS(核心层)组件

Core Os是底层,包含运行电脑所需要的基本功能,包括UNIX,BSDMach3Kernel,Bonjour是用来发现和公布服务。

   Core OS包括

          OSX Kernel Power Mgmt

         Mach3.0 Keychain

         BSD Certificates

         Socket FileSystem

         Security Bonjour

2.CoreService(核心服务层)mac系统中的功能以及配置应用程序与系统交流的环境)

    CoreService包括

         CollectionsCore Location

         AddressBook Net Service

         Networking Threading

         FileAccess Preferences(偏好设置)

         SQLite URLutilities

3.Media(媒体框架层)(用来回放音频,音频录制,负责各种不同类型绘图的框架)

   Media包括

         CoreAudio JPG,PNG,TIFF

         OpenAL PDF

         AudioMixing Quartz(2D)

         AudioRecording Core Animation

V         ideoPlayback OpenGL ES

4.CocoaTouch

最高层的是UIkit框架,本质上来说,它能让你在设备上使用触摸用户界面。

    CocoaTouch

         Multi-TouchEvents Alerts

         Multi-TouchControls Web View

         Accelerometer PeoplePicker

         ViewHierarchy Image Picker

         Localization Camera


这个环境的开发是在Xcode以及InterfaceBuilder工具上进行开发的。进行一些基础的开发所使用到的框架主要是FoundationUIKit.Foundation框架提供数据结构,数组和不同类型的字符串等类似的结构。

UIKit是一些部件像按键,滑动条,控制器这些视图,所有能在设备上进行交互或观看的东西。

CocoaTouch

  UIKit      Userinterface elements

                 Applicationruntime        
                 Eventhanding

                 HardwareAPIs

Foundation      Utility classes

                      Collectionclasses

                      Objectwrappers for system services

                      Subsetof Foundation in Cocoas


Iphone开发的环境是Xcode以及IterfaceBulder,其实只要安装xcode,它里面自动带有IB

在此Xcode开发环境中运行是基于模拟器的,大多数测试都可以在模拟器上进行,但是模拟器一般部支持硬件访问,比如,照相机,加速计,声音录制等都不支持,并且iphone部支持第三方的后台应用程序。

Iphone的屏幕分辨率为:480X320像素(在隐藏状态栏的情况下),460X320像素(在显示状态栏的情况下)

所有的确iPhone应用程序都是单窗口的,也就是说,所有的窗口都填满了整个屏幕,部允许重叠窗口。


首先来看一个小例子,建立一个基于window-based应用程序,当你点击运行的时候,模拟器就会出现了,但是你会看到屏幕上一片空白,那是因为你什么都没做,它显示的是MainWindow.xib文件。在项目中你会看到很多文件夹,但是它们并部对应着你硬盘上的文件夹,你可以在项目中设置不同的类别,每个类会有.h或者.m的后缀。.h是类的头文件,.m是需要被Objective-C编译的类的后缀。PlistXML数据,还有框架的指针,在你的应用中有链接连续UIKitFoundation

在运行应用程序时,它加载.nib文件,.nib文件时XMLInterface Builder文件,打开.nib文件,我们在左上方会发现file'sowner文件,它指的是文件的所有者。还有xxxAppDelegate,这是应用委派对象,由系统自动为你创建。在顶部菜单中选择View-->Utilitie-->AttributesInspector,随后便可以看到右边出现的属性窗口,在属性窗口的下面是工具栏,我们可以拖动组件到主窗口中(MainWindow.xib,在工具栏中你会见到不同种类的控制器以及不同种类的用户界面对象。当你拖动组件到窗口中,它会由基线让你对其窗口中的组件。



如果想要以编程的方式引用视图窗口中的视图,我们要定义一个输出口,使用代码所创建的输出口代码如下:IBOutletUILabel*mylabel;

IBOutlet是一个标志符,它告诉InterfaceBuilder应该认可它。

连接输出口,将file'sowner项拖到视图控制器中需要连接的视图上。

需要响应一个动作,我们需要定义一个动作方法。使用代码添加动作。首先在.h文件中先定义这个方法,例如:

-(IBAction)click;

连接动作:将视图控制器窗口中的视图拖到file'sowner项上。

具体的window-based应用程序例子:

首先单击xcode图标(Finder-->Developer-->Applications-->xcode)如图所示:


出现如下图所示的对话框

选择Createa new Xcode project,选择Window-basedApplication,并且next,填入项目名称例如test,最后就建好一个项目了。

点击MainWindow.xib,在工具箱中选择一个slider以及一个Label,双击视图上的Label,输入0

单击slider,在顶部菜单中选择View-->Utilitie-->AttributesInspector,然后设置slider的属性。设置属性如图所示


再从工具箱中添加一个Object到左边的placeholders中,并在属性栏中将Object的类名设置为Mycontroller


随后为Mycontroller这个控制器添加.m.h文件。点击左下角的加号,点击CocoaTouch选择UIViewControllersubclass再点击next,此处不要勾选WithXIB for userinterface,因为我们已经有了视图控制器Mycontroller了。点击next,填入名称Mycontrollersave.建好文件后如下图所示。


选择Mycontroller.h文件,添加如下代码:

#import<UIKit/UIKit.h>

@interfaceMycontroller : UIViewController{

IBOutletUILabel*mylabel;

IBOutletUISlider*myslider;

}

-(IBAction)click;

@end

点击MainWindow.xib,选择Object,在顶部菜单中选择View-->Utilitie-->ConnectionsInspector,点击我们所定义的输出口后面的小圆圈拖拽到视图控制器上对应的视图上。如图所示:


然后拖拽我们定义的动作方法到slider上,松开鼠标点击valuechanged事件。


点击Mycontroller.m文件,添加动作事件代码:

-(IBAction)click

{

intnum=myslider.value;

mylabel.text=[NSStringstringWithFormat:@"%d",num];

}

ok,至此我们的项目就完成了。看一下效果如何,同时按住control键和键运行程序,我们一定slider上的划块可以看到Label上的值发生了变化。如图所示。



原创粉丝点击