精华内容
下载资源
问答
  • Cocoa

    2016-04-20 08:41:08
    Cocoa 编辑 锁定 Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon、POSIX、X11和Java)。 苹果的面向对象开发框架,用来生成 Mac OS X 的应用程序。主要的...

    Cocoa

    编辑 锁定
    Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon、POSIX、X11和Java)。
    苹果的面向对象开发框架,用来生成 Mac OS X 的应用程序。主要的开发语言为 Objective-c, 一个c 的超集。 Cocoa 开始于1989年9月上市的NeXTSTEP 1.0,当时没有Foundation框架,只有动态运行库, 称为 kit, 最重要的是AppKit. 1993 年 NeXTSTEP 3.1 被移植到了 Intel, Sparc, HP 的平台上,Foundation 首次被加入,同时Sun 和 NeXT 合作开发OpenStep 也可以运行在Windows 系统上VCV。
    Cocoa 应用程序一般在苹果公司的开发工具Xcode(前身为Project Builder)和Interface Builder上用Objective-C写成。不过,通过Java bridge、PasCocoa、PyObjC、CamelBones以及RubyCocoa等桥接技术,Java、Clozure CL、LispWorks、Object Pascal、Python、Perl、Ruby等其它工具或者语言也可以用来开发 Cocoa 应用。也有一些其它语言的Cocoa实现无须桥接,比如苹果公司开发的MacRuby和类似Lisp的Nu语言。不使用Xcode和Interface Builder,仅仅通过文本编辑器、GCC和GNU make工具也可以用Objective-C语言开发Cocoa应用。
    对最终用户来说,使用Cocoa编程环境开发的应用程序即为Cocoa 应用。这类应用有独特的外观,因为Cocoa编程环境让程序在多方面自动遵循苹果公司的人机界面守则。
    中文名
    Cocoa
    设计者
    苹果公司
    定    义
    为Mac OS X所创原生面向对象API
    地    位
    Mac OS X上五大API之一

    Cocoa发展历史

    编辑
    更多资料:Mac OS X历史
    Cocoa 是从1980年代由 NeXT 开发的编程环境 NeXTSTEP 和 OPENSTEP 演变而来,这点可由其类别之名皆以 NS 前缀(代表NeXTSTEP)看出端倪。苹果电脑公司在1996年12月收购了NeXT。开发 NeXTSTEP 和 OPENSTEP 的大量工作都转化到了 Mac OS X 中,最显而易见的部分当属 Cocoa。但差异也存在。例如,NeXTSTEP 和 OPENSTEP 使用 Display Postscript 实现文字和图形的屏幕显示,而 Cocoa 依赖苹果的 Quartz(基于 PDF 的绘图模型)。
    Cocoa 这个名词曾经被用来称呼一款帮助儿童创建多媒体工程的应用程序。随后该应用停产。该名称被用作现在的用途。

    Cocoa开发过程

    编辑
    施乐帕罗奥多研究中心的Smalltalk开发小组最终发明了一种可以简化开发过程,提高代码重用率的设计哲学,即“模型-视图-控制器”模式(MVC)。这种模式将应用程序分为三个可以交互的对象集,即模型,视图和控制器。其中,模型类代表原始数据,例如文档、设置、文件、内存中的对象等,视图是模型中数据的可视化表现,而控制器类则包含了将模型和其对应视图连接起来的逻辑,并保持前二者的状态同步。
    Cocoa的设计遵循了严格的MVC原则。在OpenStep下,绝大多数的类要么是高层的视图类(AppKit),或者是相对底层的模型类(Foundation)。与类似的MVC系统相比,OpenStep没有强的模型层,例如它不包含表示“文档”的存储类。在向Cocoa迁移的过程中,模型层被大大扩展了,引入了一系列的类,它们提供了一些桌面程序所需的常用功能。
    在Mac OS X 10.3中,苹果引入了NSController系列类以提供预定义的控制器层。这些类是Cocoa绑定系统的一部分,该系统也允许使用类似键-值-观测器和键-值-绑定协议来对其进行扩展。其中,“绑定”的概念表明两个对象(通常是视图和控制器)之间的关系。绑定使得开发者可以集中于定义这种关系,而不是编写大量的“胶水代码”来实现这些关系。
    在Mac OS X 10.4中,苹果引入了Core Data框架,进一步扩展了这种概念。Core Data标准化了对更改的追踪和模型层的保存行为。因此,该框架大大简化了改变应用程序数据,撤销更改,在磁盘中保存和读取数据的过程。
    通过提供对MVC模型中全部3层的框架支持,苹果的目的在于减少程序员所需编写的“胶水代码”量,以解放这些资源而用于程序的真正特性。

    Cocoa动态绑定

    编辑
    在多数面向对象的编程语言中,调用方法是由直接调用内存中一段固定的代码实现的。由于这种方法需要预定义的处理命令的类,因而限制了程序的设计,通常采用责任链模式作为其设计模式。虽然Cocoa在多数地方仍然采用这种方式,但通过Objective-C的动态绑定特性增加了更多设计的自由性。
    在Objective-C中,消息由selector所代表,其为描述需要调用的方法的一个字符串。在发送消息时,该selector被送入Objective-C运行时中,在可用方法列表中寻找对应的方法,然后调用该方法的实际实现。由于selector只是文本数据,因此它可以保存在文件中,通过网络或在进程间传输,或以其它方式进行操作。方法的实现是在运行时查找的,而非编译时。这样的做法会造成一些性能损失,但动态绑定允许相同的selector代表不同的实现。
    利用这些特性,Cocoa提供了一种通用的数据管理技术,称为键-值编码(KVC)。这种技术允许对象的数据或属性可以在运行时通过其键名进行查找,其中,属性的名称即为其值的键名。在静态语言中,这样的做法是不可能的。KVC大大的增加了设计的自由度:通过KVC,无需知道对象的类型即可访问其属性或数据。另外,利用键-值-观测器(KVO)技术和NSUndoManager类,可以提供自动的撤销/重做支持。

    Cocoa内存管理

    编辑
    Cocoa环境的一个特点是它可以管理动态分配的内存。Cocoa中绝大部分类的基类都是NSObject,它实现了引用计数的内存管理模型。从NSObject继承的类可以响应retain和release消息,以增减其引用计数;也可以通过发送retainCount消息来获取其引用计数。一个以alloc ,copy或Objective-C 2.0中增加的new所创建的对象的引用计数为1;向对象发送retain消息会将计数加1,而发送release消息则会将计数减1。若对象的引用计数减少到了0,则它会被销毁。dealloc消息类似于C++中的析构函数,在对象被销毁之前可能会被调用,但系统不保证会发送该消息。这种引用计数的模型与微软的COM中的IUnknown接口特性十分相似,它提供了AddRef和Release接口,与retain和release对应。
    从Objective-C 2.0开始,Objective-C运行时实现了可选的垃圾收集器。若垃圾收集的特性被激活,则运行时会将引用计数相关的操作,例如“retain”和“release”,变为无操作。iOS上的Objective-C 2.0实现中不包含垃圾收集器。垃圾收集器运行在一个低优先级的后台线程中,并可以在用户动作时暂停,从而保持良好的用户体验。

    Cocoa主要框架

    编辑
    Cocoa包含两个主要的Objective-C对象库,称为“框架”。框架的功能类似于动态库,即可以在运行时动态的载入应用程序的地址空间,但框架作为一个捆绑 (计算机)而非独立文件,其中除了可执行代码外,也包含了资源,头文件和文档。
    “Foundation工具包”,或简称为“Foundation”,首先出现在OpenStep中。在Mac OS X中,它是基于Core Foundation的。作为通用的面向对象的函数库,Foundation提供了字符串,数值的管理,容器及其枚举,分布式计算,事件循环,以及一些其它的与图形用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源,NeXTSTEP。它可以在Mac OS X和iOS中使用。
    “应用程序工具包”,或称AppKit(Application Kit)是直接衍生自NeXTSTEP的AppKit的。它包含了程序与图形用户界面交互所需的代码。它是基于Foundation建立的,也使用“NS”前缀。它只能在Mac OS X中使用。
    “用户界面工具包”,或称UIKit(User Interface Kit),是用于iOS的图形用户界面工具包。与AppKit不同,它使用“UI”的前缀。
    Cocoa构架的一个关键部分是其多样的视图模型。总体而言,它是基于由Quartz提供的PDF绘制模型的,该特性允许使用PostScript绘制自定义图形内容,同时也自动的支持了打印机以及类似设备。由于Cocoa框架管理了全部的绘图操作,例如裁剪,滚动,缩放等,程序员可以不再重复实现基础的功能,而可以集中于提供程序的关键功能上。

    Cocoa基础对象

    编辑
    Cocoa中最有用的特性是系统提供的强大的“基础对象”,例如Foundation中的NSString和NSAttributedString类,提供了Unicode字符串的支持;而AppKit中的NSText系统则允许程序员在GUI中放置字符串对象。
    NSText及其相关类是用于显示和编辑字符串的。这些对象允许程序实现简单的单行文本框,也可以实现完整的多页,多栏文本显示方案 ,方案同时可以提供支持完整的专业排版特性,例如压缩字符,合字,环绕形状的文字,旋转,完整的Unicode支持和反锯齿字形渲染。段落格式可以自动控制或由用户自定义;可以使用内建的“ruler”对象附加到任何文本视图上。这些类也有自动拼写检查特性,该特性使用一个由所有程序共享的字典。另外,也允许无限制数量的撤销/重做操作。只使用内建的特性,任何人都可以只用不到10行代码写出一个具备上述特性的文本编辑器,而若使用Cocoa绑定,甚至可以不用写一行代码。
    若需要对已有特性进行扩展,Objective-C中的类别特性使得这项操作变得相当容易。通过类别可以直接对已有类进行功能添加,而无需对其进行更改或获得其源代码。一般而言,这样的目的需要通过继承原有的类并修改原有的代码,将原有的类以新的子类代替来完成。

    Cocoa实现

    编辑
    Cocoa 本身由 Objective-C 语言写成,因此 Objective-C 是开发 Cocoa 应用的首选语言。虽然也提供 Java 到 Cocoa 的绑定,但是在开发者中并未得到广泛采用。而且,由于使用桥接机制,Java 的绑定并不能全面利用 Cocoa 的所有功能。2005年,苹果公司宣布 Java 的 Cocoa 绑定在 Mac OS X 10.4 和之后版本中属被废弃的技术。换句话说,Cocoa API 中可能会逐渐出现不支援 Java 的功能。
    作为 Xcode 一部分的 AppleScript Studio 工具允许用户和开发者用 AppleScript 编写一些简单的 Cocoa 应用。第三方实现的绑定有 Clozure CL、LispWorks、PyObjC (Python)、RubyCocoa (Ruby)、CamelBones (Perl)、Cocoa#、Monobjc (C#) 和 NObjective(C#)。Nu 语言直接使用 Objective-C 的对象模型,所以无须绑定就可以调用 Cocoa API。
    也有开源项目把 Cocoa 的大部分在其它操作系统上实现(包括 Windows),从而使开发跨平台的 Cocoa 应用成为可能。比如 GNUStep 和 Cocotron。
    词条标签:
    计算机术语 计算机学 科技


    展开全文
  • cocoa

    2015-12-12 13:43:00
    Cocoa Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon、POSIX、X11和Java)。 苹果的面向对象开发框架,用来生成 Mac OS X 的应用程序。主要的开发语言为 ...

    Cocoa

    Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon、POSIX、X11和Java)。
    苹果的面向对象开发框架,用来生成 Mac OS X 的应用程序。主要的开发语言为 Objective-c, 一个c 的超集。 Cocoa 开始于1989年9月上市的NeXTSTEP 1.0,当时没有Foundation框架,只有动态运行库, 称为 kit, 最重要的是AppKit. 1993 年 NeXTSTEP 3.1 被移植到了 Intel, Sparc, HP 的平台上,Foundation 首次被加入,同时Sun 和 NeXT 合作开发OpenStep 也可以运行在Windows 系统上VCV。
    Cocoa 应用程序一般在苹果公司的开发工具Xcode(前身为Project Builder)和Interface Builder上用Objective-C写成。不过,通过Java bridge、PasCocoa、PyObjC、CamelBones以及RubyCocoa等桥接技术,Java、Clozure CL、LispWorks、Object Pascal、Python、Perl、Ruby等其它工具或者语言也可以用来开发 Cocoa 应用。也有一些其它语言的Cocoa实现无须桥接,比如苹果公司开发的MacRuby和类似Lisp的Nu语言。不使用Xcode和Interface Builder,仅仅通过文本编辑器、GCC和GNU make工具也可以用Objective-C语言开发Cocoa应用。
    对最终用户来说,使用Cocoa编程环境开发的应用程序即为Cocoa 应用。这类应用有独特的外观,因为Cocoa编程环境让程序在多方面自动遵循苹果公司的人机界面守则。
    中文名
    Cocoa
    设计者
    苹果公司
    定    义
    为Mac OS X所创原生面向对象API
    地    位
    Mac OS X上五大API之一
     

    发展历史编辑

    更多资料:Mac OS X历史
    Cocoa 是从1980年代由 NeXT 开发的编程环境 NeXTSTEP 和 OPENSTEP 演变而来,这点可由其类别之名皆以 NS 前缀(代表NeXTSTEP)看出端倪。苹果电脑公司在1996年12月收购了NeXT。开发 NeXTSTEP 和 OPENSTEP 的大量工作都转化到了 Mac OS X 中,最显而易见的部分当属 Cocoa。但差异也存在。例如,NeXTSTEP 和 OPENSTEP 使用 Display Postscript 实现文字和图形的屏幕显示,而 Cocoa 依赖苹果的 Quartz(基于 PDF 的绘图模型)。
    Cocoa 这个名词曾经被用来称呼一款帮助儿童创建多媒体工程的应用程序。随后该应用停产。该名称被用作现在的用途。

    开发过程编辑

    施乐帕罗奥多研究中心的Smalltalk开发小组最终发明了一种可以简化开发过程,提高代码重用率的设计哲学,即“模型-视图-控制器”模式(MVC)。这种模式将应用程序分为三个可以交互的对象集,即模型,视图和控制器。其中,模型类代表原始数据,例如文档、设置、文件、内存中的对象等,视图是模型中数据的可视化表现,而控制器类则包含了将模型和其对应视图连接起来的逻辑,并保持前二者的状态同步。
    Cocoa的设计遵循了严格的MVC原则。在OpenStep下,绝大多数的类要么是高层的视图类(AppKit),或者是相对底层的模型类(Foundation)。与类似的MVC系统相比,OpenStep没有强的模型层,例如它不包含表示“文档”的存储类。在向Cocoa迁移的过程中,模型层被大大扩展了,引入了一系列的类,它们提供了一些桌面程序所需的常用功能。
    在Mac OS X 10.3中,苹果引入了NSController系列类以提供预定义的控制器层。这些类是Cocoa绑定系统的一部分,该系统也允许使用类似键-值-观测器和键-值-绑定协议来对其进行扩展。其中,“绑定”的概念表明两个对象(通常是视图和控制器)之间的关系。绑定使得开发者可以集中于定义这种关系,而不是编写大量的“胶水代码”来实现这些关系。
    在Mac OS X 10.4中,苹果引入了Core Data框架,进一步扩展了这种概念。Core Data标准化了对更改的追踪和模型层的保存行为。因此,该框架大大简化了改变应用程序数据,撤销更改,在磁盘中保存和读取数据的过程。
    通过提供对MVC模型中全部3层的框架支持,苹果的目的在于减少程序员所需编写的“胶水代码”量,以解放这些资源而用于程序的真正特性。

    动态绑定编辑

    在多数面向对象的编程语言中,调用方法是由直接调用内存中一段固定的代码实现的。由于这种方法需要预定义的处理命令的类,因而限制了程序的设计,通常采用责任链模式作为其设计模式。虽然Cocoa在多数地方仍然采用这种方式,但通过Objective-C的动态绑定特性增加了更多设计的自由性。
    在Objective-C中,消息由selector所代表,其为描述需要调用的方法的一个字符串。在发送消息时,该selector被送入Objective-C运行时中,在可用方法列表中寻找对应的方法,然后调用该方法的实际实现。由于selector只是文本数据,因此它可以保存在文件中,通过网络或在进程间传输,或以其它方式进行操作。方法的实现是在运行时查找的,而非编译时。这样的做法会造成一些性能损失,但动态绑定允许相同的selector代表不同的实现。
    利用这些特性,Cocoa提供了一种通用的数据管理技术,称为键-值编码(KVC)。这种技术允许对象的数据或属性可以在运行时通过其键名进行查找,其中,属性的名称即为其值的键名。在静态语言中,这样的做法是不可能的。KVC大大的增加了设计的自由度:通过KVC,无需知道对象的类型即可访问其属性或数据。另外,利用键-值-观测器(KVO)技术和NSUndoManager类,可以提供自动的撤销/重做支持。

    内存管理编辑

    Cocoa环境的一个特点是它可以管理动态分配的内存。Cocoa中绝大部分类的基类都是NSObject,它实现了引用计数的内存管理模型。从NSObject继承的类可以响应retain和release消息,以增减其引用计数;也可以通过发送retainCount消息来获取其引用计数。一个以alloc ,copy或Objective-C 2.0中增加的new所创建的对象的引用计数为1;向对象发送retain消息会将计数加1,而发送release消息则会将计数减1。若对象的引用计数减少到了0,则它会被销毁。dealloc消息类似于C++中的析构函数,在对象被销毁之前可能会被调用,但系统不保证会发送该消息。这种引用计数的模型与微软的COM中的IUnknown接口特性十分相似,它提供了AddRef和Release接口,与retain和release对应。
    从Objective-C 2.0开始,Objective-C运行时实现了可选的垃圾收集器。若垃圾收集的特性被激活,则运行时会将引用计数相关的操作,例如“retain”和“release”,变为无操作。iOS上的Objective-C 2.0实现中不包含垃圾收集器。垃圾收集器运行在一个低优先级的后台线程中,并可以在用户动作时暂停,从而保持良好的用户体验。

    主要框架编辑

    Cocoa包含两个主要的Objective-C对象库,称为“框架”。框架的功能类似于动态库,即可以在运行时动态的载入应用程序的地址空间,但框架作为一个捆绑 (计算机)而非独立文件,其中除了可执行代码外,也包含了资源,头文件和文档。
    “Foundation工具包”,或简称为“Foundation”,首先出现在OpenStep中。在Mac OS X中,它是基于Core Foundation的。作为通用的面向对象的函数库,Foundation提供了字符串,数值的管理,容器及其枚举,分布式计算,事件循环,以及一些其它的与图形用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源,NeXTSTEP。它可以在Mac OS X和iOS中使用。
    “应用程序工具包”,或称AppKit(Application Kit)是直接衍生自NeXTSTEP的AppKit的。它包含了程序与图形用户界面交互所需的代码。它是基于Foundation建立的,也使用“NS”前缀。它只能在Mac OS X中使用。
    “用户界面工具包”,或称UIKit(User Interface Kit),是用于iOS的图形用户界面工具包。与AppKit不同,它使用“UI”的前缀。
    Cocoa构架的一个关键部分是其多样的视图模型。总体而言,它是基于由Quartz提供的PDF绘制模型的,该特性允许使用PostScript绘制自定义图形内容,同时也自动的支持了打印机以及类似设备。由于Cocoa框架管理了全部的绘图操作,例如裁剪,滚动,缩放等,程序员可以不再重复实现基础的功能,而可以集中于提供程序的关键功能上。

    基础对象编辑

    Cocoa中最有用的特性是系统提供的强大的“基础对象”,例如Foundation中的NSString和NSAttributedString类,提供了Unicode字符串的支持;而AppKit中的NSText系统则允许程序员在GUI中放置字符串对象。
    NSText及其相关类是用于显示和编辑字符串的。这些对象允许程序实现简单的单行文本框,也可以实现完整的多页,多栏文本显示方案 ,方案同时可以提供支持完整的专业排版特性,例如压缩字符,合字,环绕形状的文字,旋转,完整的Unicode支持和反锯齿字形渲染。段落格式可以自动控制或由用户自定义;可以使用内建的“ruler”对象附加到任何文本视图上。这些类也有自动拼写检查特性,该特性使用一个由所有程序共享的字典。另外,也允许无限制数量的撤销/重做操作。只使用内建的特性,任何人都可以只用不到10行代码写出一个具备上述特性的文本编辑器,而若使用Cocoa绑定,甚至可以不用写一行代码。
    若需要对已有特性进行扩展,Objective-C中的类别特性使得这项操作变得相当容易。通过类别可以直接对已有类进行功能添加,而无需对其进行更改或获得其源代码。一般而言,这样的目的需要通过继承原有的类并修改原有的代码,将原有的类以新的子类代替来完成。

    实现编辑

    Cocoa 本身由 Objective-C 语言写成,因此 Objective-C 是开发 Cocoa 应用的首选语言。虽然也提供 Java 到 Cocoa 的绑定,但是在开发者中并未得到广泛采用。而且,由于使用桥接机制,Java 的绑定并不能全面利用 Cocoa 的所有功能。2005年,苹果公司宣布 Java 的 Cocoa 绑定在 Mac OS X 10.4 和之后版本中属被废弃的技术。换句话说,Cocoa API 中可能会逐渐出现不支援 Java 的功能。
    作为 Xcode 一部分的 AppleScript Studio 工具允许用户和开发者用 AppleScript 编写一些简单的 Cocoa 应用。第三方实现的绑定有 Clozure CL、LispWorks、PyObjC (Python)、RubyCocoa (Ruby)、CamelBones (Perl)、Cocoa#、Monobjc (C#) 和 NObjective(C#)。Nu 语言直接使用 Objective-C 的对象模型,所以无须绑定就可以调用 Cocoa API。
    也有开源项目把 Cocoa 的大部分在其它操作系统上实现(包括 Windows),从而使开发跨平台的 Cocoa 应用成为可能。比如 GNUStep 和 Cocotron。

    转载于:https://www.cnblogs.com/hai-zi/p/5041119.html

    展开全文
  • Cocoa-Cocoa框架

    2019-10-05 03:39:34
    1、Cocoa是什么? Cocoa是OS X和 iOS操作系统的程序的运行环境。 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发中你可以使用各种语言;也不是开发工具,你可以在命令行上就可以创建Cocoa...

    1、Cocoa是什么?

    Cocoa是OS X和 iOS操作系统的程序的运行环境。

    是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发中你可以使用各种语言;也不是开发工具,你可以在命令行上就可以创建Cocoa程序。Cocoa程序可以这么说,它是由一些对象组成,而这些对象的类最后都是继承于它们的根类 :NSObject。而且它们都是基于Objective-C运行环境的。

    1.1、Cocoa框架

    iOS中,Cocoa众多框架中最重要最基本的两个框架是:Foundation 和 UIKit。

    Foundation 和界面无关,也可以说和界面无关的类基本是Foundation框架的,和界面相关的是UIKit框架。

    这两个框架在系统中处于的位置如图:

     

    1.2、Foundation框架

    好吧,那我们看看两个框架的类组织架构图,第一个先看Foundation的,三个图,包括了Foundation所有的类,图中灰色的是iOS不支持的,灰色部分是OS X系统的。

      

    将上图Foundation框架中的类进行逻辑分类如下:

    1. 值对象

    2. 集合 

    3. 操作系统服务 包括下面三个:文件系统和URL   进程间通讯。 这个范畴中的大部分类代表不同的系统端口、套接字、和名字服务器,对实现底层的IPC很有用。NSPipe代表一个BSD管道,即一种进程间的单向通讯通道。   线程和子任务。 NSThread类使您可以创建多线程的程序,而各种锁(lock)类则为彼此竞争的线程在访问进程资源时提供各种控制机制。通过NSTask,您的程序可以分出      一个子进程来执行其它工作或进行进度监控。

    4. 通知

    5. 归档和序列化

    6. 表达式和条件判断

    7. Objective-C语言服务

    1.3 UIKit框架

    应用程序可以通过三种方式使用UIKit创建界面

    1.   在用户界面工具(interface Buidler)从对象库里 拖拽窗口,视图或者其他的对象使用。

    2.   用代码创建

    3.   通过继承UIView类或间接继承UIView类实现自定义用户界面

    框架类组织架构图:

    在图中可以看出,responder 类是图中最大分支的根类,UIResponder为处理响应事件和响应链 定义了界面和默认行为。当用户用手指滚动列表或者在虚拟键盘上输入时,UIKit就生成时间传送给UIResponder响应链,直到链中有对象处理这个事件。相应的核心对象,比如:UIApplication  ,UIWindow,UIView都直接或间接的从UIResponder继承。

    转载于:https://www.cnblogs.com/AnnieBabygn/p/7872950.html

    展开全文
  • Cocoa/Cocoa Touch

    2016-06-22 16:50:54
    对比描述CocoaCocoa Touch

    前言


    Cocoa包含Foundation和AppKit(Application Kit)框架,用于开发Mac OS X系统的应用程序.

    Cocoa Touch则是他的一个子类,包含Foundation和UIKit(UserInterface Kit)框架,他所支持的Foundation框架与Cocoa相同,但他的用户图形类库为UIKit,为iOS系统设计,提供了iOS的界面,用于开发iPhone OS系统的应用程序.细心的朋友在这里也不难看出:

    这里写图片描述
    这里写图片描述

    Foundation:

    ⭐️Foundation框架实现了NSObjec类(即根类),这个类定义基本对象行为.此外,该框架还实现了用于表示基本类型(例如,字符串和数字)和群体类型(例如,数组和字典)的类,同时也提供一些基本工具,例如用于国际化、对象持久化、文件管理以及XML处理的工具.你还可以使用Foundation框架中的类访问底层系统的实体和服务,例如可以用它来访问端口、线程、锁和进程.Foundation框架以Core Foundation框架为基础,Core Foundation框架提供的是过程化(ANSI C)接口.

    ⭐️Foundation框架为所有应用程序提供基本的系统服务.应用程序以及UIKit和其他框架,都是建立在Foundation框架的基础结构之上.Foundation框架提供许多基本的对象类和数据类型,使其成为应用程序开发的基础.它还制定了一些约定(如用于取消分配等任务),使代码更加一致,可复用性更好.

    AppKit/UIKit:

    ⭐️所有iOS应用程序都是基于UIKit,UIKit基于Foundation 架,没有这个框架,就无法交付应用程序.UIKit提供应用程序的基础架构,用于在屏幕上绘图、处理事件,以及创建通用用户界面及其中元素.UIKit还通过管理屏幕上显示的内容,来组织应用程序.

    ⭐️AppKit和UIKit框架开发应用程序的用户接口.二者用途相同,但是针对平台不同.框架中的类很多,各有不同用途:有的用于事件处理、有的用于画图、有的用于图像处理、有的用于文本处理、有的用于用户排版、还有用于应用程序间数据传输.框架中还包含表视图、滑动条、按键、文本字段以及警告对话框等用户接口元素.

    Cocoa与Cocoa Touch都包含Objective-C运行时和Foundation核心框架

    Cocoa Touch构建基础


    大部分 Cocoa Touch 的功能是用 Objective-C 实现的.Objective-C 是一种面向对象的语言,它编译运行的速度令人难以置信.更值得一提的是采用了真正的动态运行时系统,从而增添了难能可贵的灵活性.由于 Objective-C 是 C 的超集,因此您可以轻松地将 C 甚至是 C++ 融入 Cocoa Touch 应用程序中.

    当应用程序运行时,Objective-C 运行时会根据执行逻辑(而不仅是编译期间定义的方式)实例化对象.例如,运行中的 Objective-C 应用程序可以载入界面(Interface Builder 创建的 nib 文件),将界面中的 Cocoa 对象连接到应用程序代码,然后在按下 UI 按钮后运行正确的方法.无需进行重新编译.

    Cocoa Touch框架


    除 UIKit 之外,Cocoa Touch 包含创建世界一流 iOS 应用程序所需的所有框架,从 3D 图形、专业音频到网络,甚至提供特殊设备访问 API 以控制摄像机或从 GPS 硬件获取位置.Cocoa Touch 既包含只需要几行代码就可以完成全部任务的强大的 Objective-C 框架,也在需要时提供基础的 C 语言 API 来直接访问系统.这些框架示例包括:

    ⭐️Core Animation:通过 Core Animation,您就可以通过基于组合独立图层的简单编程模型来创建丰富的用户体验.

    ⭐️Core Audio:播放、处理和录制音频的专业级技术,能够轻松为您的应用程序添加强大的音频功能.

    ⭐️Core Data: 提供面向对象的数据管理解决方案,该方案易于使用和理解,甚至可处理任何应用或大或小的数据模型.

    语言


    Objective-C是开发Cocoa和Cocoa Touch应用程序的本地语言,也是最重要的语言.但是Cocoa和Cocoa Touch应用程序也可以包含C++和ANSI C代码.另外,你也可以使用桥接Objective-C运行时的脚本语言—例如PyObjC和RubyCocoa—开发Cocoa应用程序.

    iphone 技术层


    ⭐️Cocoa Touch 层由多个框架组成,他们为应用程序提供了核心功能.

    ⭐️UIKit 负责启动和结束应用程序,控制界面和多触点事件

    ⭐️Map Kit 提供地图的相关服务,定位或者区域检测等

    ⭐️Game Kit 创建和使用网络机制

    ⭐️Message UI/Address Book UI 提供操作电子邮件和联系人的信息

    ⭐️iAd 可以通过该框架在应用程序中发布横幅广告。在合适的时机向用户展现。

    ⭐️Event Kit UI 提供一个视图控制键可以展现查看并编辑事件的标准系统界面

    展开全文
  • cocoacocoaTouch

    2017-01-18 15:05:26
    1.cocoacocoa Touch Cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序。 Cocoa Touch包含Foundation和UIKit框架,可用于开发iPhone OS系统的应用程序。 Cocoa是 Mac OS X 的...
  • Cocoa pod

    2020-11-25 16:48:38
    <div><p>Please add a cocoa pod to this project.</p><p>该提问来源于开源项目:TanguyAladenise/BBBadgeBarButtonItem</p></div>
  • cocoacocoa Touch的区别

    2019-09-27 21:39:29
    cocoacocoa Touch区别之分 相同之处:两者都包含OC运行时的两个核心框架: cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序 cocoa touch包含Foundation和UIKit框架,可用于开发iPhone OS ...
  • CocoaCocoa Touch区别

    千次阅读 2017-07-25 11:21:23
    CocoaCocoa Touch区别之分是本文要介绍的内容,他们共同点就是二者都包含Objective-C运行时和两个核心框架:Cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序。Cocoa Touch包含Foundation和...
  • CocoaCocoa Touch区别之分是本文要介绍的内容,他们共同点就是二者都包含Objective-C运行时和两个核心框架: Cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序。 Cocoa Touch包含Foundation...
  • cocoa
  • 20-CocoaCocoa Touch简介

    2019-04-25 10:40:40
    20-CocoaCocoa Touch简介
  • Mantle 是 CocoaCocoa Touch 的模型框架,你可以通过它为你的 CocoaCocoa Touch 写简单的模型层。示例代码:@interface XYUser : MTLModel @property (readonly, nonatomic, copy) NSString *name;...
  • Cocoa简介

    千次阅读 2018-05-04 16:45:37
    Cocoa是什么?Cocoa是OS X和 iOS操作系统的程序的运行环境。是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发中你可以使用各种语言;也不是开发工具,你可以在命令行上就可以创建Cocoa程序。...
  • CocoaCocoa Touch介绍

    千次阅读 2015-09-17 16:15:54
    cocoacocoa Touch区别之分: 两者都包含OC运行时的两个核心框架 cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序 cocoa touch包含Foundation和UIKit框架,可用于开发iPhone OS 系统的应用程序...
  • CocoaCocoa Touch

    2013-07-05 15:49:55
    CocoaCocoa Touch Cocoa 是在Mac OS X系统上原生的一个编译环境。他包含两个框架,其实就是一系列的类库,Foundation和AppKit。 在你的iPhone等掌上设备上,使用的则是他的一个子类 - Cocoa Touch
  • CocoaCocoa Touch框架浅析

    千次阅读 2016-10-04 15:40:29
    近几日在招聘网站上看到IOS招聘的要求中经常出现要求会Cocoa框架、Cocoa Touch框架、Foundation框架等等,那到底以上这些框架是啥,他们有什么关系呢,在教室里闲来无事总结一波。Cocoa框架是指Foundation框架和...
  • CocoaCocoa Touch简介

    2015-03-17 18:51:19
    Cocoa层位于应用程序层之下,Cocoa包括Foundation 、Core Data、和AppKit框架。Foundation框架提供处理集合,字符串、内存管理、文件系统、存档等相关的类。AppKit框架提供管理视图、窗口、文档和使Mac os闻名于世的...
  • 教程名称:Cocoa开发框架基础指南课程目录:【】Cocoa programming for mac os x 3rd 翻译版高清晰版(仅18章)【】Cocoa Touch for iPhone OS 3 (pdf 书及源代码)【】Cocoa 开发框架概述【】Cocoa入门学习【】Cocoa...
  • Cocoa 框架

    2015-11-23 10:49:00
    Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助。 1、Cocoa是什么? Cocoa是OS X和 iOS操作系统的程序的运行环境。 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为...
  • Add cocoa beans

    2020-12-04 16:23:19
    <div><p>Add cocoa beans</p><p>该提问来源于开源项目:Nukkit/Nukkit</p></div>

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,236
精华内容 6,894
关键字:

cocoa