GVKun编程网logo

构建纯Swift Cocoa Touch框架(swift combine框架)

15

想了解构建纯SwiftCocoaTouch框架的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于swiftcombine框架的相关问题,此外,我们还将为您介绍关于CocoaTouch层Coco

想了解构建纯Swift Cocoa Touch框架的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于swift combine框架的相关问题,此外,我们还将为您介绍关于Cocoa Touch 层 Cocoa Touch 层包含的框架 保留学习用、Cocoa Touch框架、Cocoa Touch框架引用计数、cocoa-touch – Touch ID提示在仅横向应用中显示为肖像的新知识。

本文目录一览:

构建纯Swift Cocoa Touch框架(swift combine框架)

构建纯Swift Cocoa Touch框架(swift combine框架)

我正在使用Xcode-6探索Swift,到目前为止,尽管我认为新集合需要做一些工作,因为我设法破坏了几次编译器,但到目前为止还不错。

问题是我现在正试图创建框架包, _ 然后在另一个项目中使用它_
。该项目的构建没有问题,所有测试均成功通过。当我创建存档(我认为这是必需的)时,收到错误消息:

:0:错误:找不到基础的Objective-C模块“样本”

现在我认为这与我的Sample.h的内容有关

// In this header, you should import all the public headers of your framework using statements like #import <Sample/PublicHeader.h>

很好,除了我只为此框架使用了快速枚举,结构和类,因此没有.h文件。

由于我找不到任何可用的文档,因此谁能对此有所启发?

答案1

小编典典

编辑(7/27/2018)

以下答案中的信息可能不再准确。你的旅费可能会改变。


我和工程师坐下,问了这个确切的问题。这是他们的回应:

Xcode
6目前不支持构建可分发的Swift框架,并且Apple可能不会在Xcode对其有利之前将其构建到Xcode中。目前,框架应该嵌入到您应用程序的项目中,而不是分布式。如果您观看任何会议视频或观看示例项目,则总是这样。另一个原因是,Swift非常新,并且可能会发生变化。因此,不能保证基于Swift的框架可以在最初构建该框架的平台上工作。

轻微更新

工程师提到,要建立一个分发框架并不是没有可能的,只是它不被支持。

Cocoa Touch 层 Cocoa Touch 层包含的框架 保留学习用

Cocoa Touch 层 Cocoa Touch 层包含的框架 保留学习用

Cocoa Touch 层

Cocoa Touch层包含创建 iOS应用程序所需的关键框架。上至实现应用程序可视界面,下至与高级系统服务交互,都需要该层技术提供底层基础。在开发应用程序的时候,请尽可能不要使用更底层的框架,尽可能使用该层的框架。

高级特性

下面章节描述一些常见特性,也许您也正打算在应用程序支持这些特性。

多任务

如果应用程序构建于iPhone SDK 4.0及其后续版本(且运行于iOS 4.0及后续版本操作系统),则点击Home键的时候,应用程序不会结束,而是切换到后台。对于大多数应用程序来说,进入后台,它们就会进入挂起状态。让应用程序驻留在后台可以避免以后的重新启动过程,应用程序可以直接将自己激活,这在很大程度上改善了整体用户体验。另外,将应用程序挂起也可以改善系统性能,因为挂起应用程序可以最小化电能使用,并可让前台应用程序获得更多的执行时间。

尽管应用程序进入后台就会被挂起,但可以通过下述的技术让其在后台继续运行:

  • 应用程序可以请求一定的时间完成某些重要的任务。

  • 应用程序可以声明自身支持的某种服务需要获得定期后台执行时间。

  • 应用程序可以使用本地通告在指定时间向用户发通知。这种方式对于应用程序是否运行没有要求。

不管应用程序是被挂起还是在后台运行,支持多任务不需要付出额外的工作。但是在某些情况(例如内存不足)下,应用程序可能会被结束运行。因此,应用程序应该可以在任何时候退出。这就意味着许多在退出应用程序时需要执行的任务必须改为在应用程序切换到后台的时候执行。这就要求您在应用程序委托中实现一些新的方法以响应程序的状态切换。

如果需要进一步了解如何对后台状态切换进行处理以及如何让应用程序在后台继续运行,请查看iOS应用程序编程指南

数据保护

和敏感用户数据打交道的应用程序可以使用设备内建加密功能(有些设备可能不提供内建加密功能)对数据进行保护。如果应用程序指定某个文件受保护,系统会以加密格式将该文件保存在磁盘。当设备锁住的时候,您的应用程序以及其他潜在的闯入者都不能访问该文件,而当用户解锁设备后,系统会生成一份密钥以便您的应用程序就访问该文件。

如需实现数据保护,应用程序应在待保护数据的创建和管理方式下一些功夫。它必须能够在数据创建之时保证其安全,而且需要适配设备上锁或未上锁造成的文件可访问性的变化。

如需进一步了解应用程序如何为文件添加数据保护,请查看iOS应用程序编程指南中的实现标准的应用程序行为一章。

苹果推送通知服务

iOS 3.0及后续版本的系统中,不管应用程序是否运行,苹果推送通知服务可用于通知用户某个应用程序具有新信息。利用这项服务,您可以向系统推送文本通知,可以触发声音提醒或者在应用程序图标上添加一个数字化标记。这样用户就知道他们应该打开应用程序接收相关信息。

从设计角度看,让应用程序支持推送通知包含两个部分。首先,iOS应用程序需要请求系统向其发送通知,然后要合理配置应用程序委托使其可以对通知进行恰当处理。这些工作可以通过应用程序委托以及UIApplication对象合作完成。第二,您需要提供一个服务器端进程用于产生最初的通知。该进程运行在您自己的本地服务器,它和苹果推送通知服务协同工作以产生最初的通知。

如需进一步了解如何配置应用程序以便使用远程通知,请查看本地通知及推送通知编程指南。 

本地通知

iOS 4.0引入了本地通知。本地通知是对已有推送通知的补充,通用程序可以通过它在本地生成通知,不再需要依赖外部服务器。当有重要的事件发生时,后台应用程序可以利用本地通知获得用户关注。举个例子,运行于后台的导航应用程序可以使用本地通知提醒用户要转弯。应用程序也可以安排在未来的某个时刻向用户发送本地通知,而且发送这些通知并不要求应用程序处于运行状态。

本地通知的优点是它独立于您的应用程序。一旦某个通知被安排好后,系统会负责通知发送。而且在发送通知的时候,您的应用程序无需处于运行状态

如需进一步了解本地通知的使用方式,请查看本地通知及推送通知编程指南

手势识别器

iOS 3.2引入了手势识别器。手势识别器是一个绑定到视图的对象,用于检测常见的手势类型。将手势识别器绑定到视图后,您可以告诉它某个手势发生的时候执行何种动作。之后,手势识别器就可以对原始事件进行跟踪,根据系统定义的试探方式识别手势。在引入手势识别器前,如果要识别一个手势,您需要跟踪视图的原始触摸事件流,然后再使用复杂的试探方法来判断这些事件是否表示某种手势。

现在,UIKit框架中包含一个UIGestureRecognizer 类,它定义了所有手势识别器的基本行为。您可以使用自定义的手势识别器子类或者系统定义的某个子类处理下面这些标准手势:

  • 拍击 (任意次数的拍击)

  • 向里或向外捏 (用于缩放)

  • 摇动或者拖拽

  • 擦碰 (以任意方向)

  • 旋转 (手指朝相反方向移动)

  • 长按

如需进一步了解您可以使用的手势识别器,请查看iOS事件处理指南

文件共享支持

应用程序可以使用文件共享让用户访问程序的用户数据文件。文件共享允许应用程序通过iTunes向用户显露应用程序/Documents目录的内容。这样,用户就可以在iPad和桌面计算机来回移动文件。但是,该功能不允许应用程序和同一设备上的其他应用程序共享文件。如果希望在程序间共享文件,请使用剪贴板或者文档交互控制器对象。

您可以通过如下步骤来让应用程序支持文件共享:

  1. 在应用程序的Info.plist文件中添加UIFileSharingEnabled键,并将键值设置为YES

  2. 将您希望共享的文件放在应用程序的Documents目录。

  3. 一旦设备插入到用户计算机,iTunes 9.1就会在选中设备的Apps标签中显示一个File Sharing区域。

  4. 此后,用户就可以向该目录添加文件或者将文件移动到桌面计算机中。

如果应用程序支持文件共享,当文件添加到Documents目录后,应用程序应该能够识别并做出适当响应。例如说,应用程序可以将新文件的内容显示界面上。请不要向用户展现目录的文件列表并询问他们希望对文件执行什么操作。

如需进一步了解 UIFileSharingEnabled键,请查看信息属性列表参考

点对点服务

在iOS 3.0 及后续版本,Game Kit框架支持经由蓝牙进行点对点连接。您可以使用点对点连接启动与某个邻近设备的通讯会话,也可用它实现多种多玩家游戏的常见特性。虽然点对点连接主要应用于游戏,但您也可将之应用于其他类型应用程序。

如需进一步了解如何在应用程序中使用点对点连接的特性,请查看Game Kit 编程指南。如果需要概要了解Game Kit框架,请查看“Game Kit 框架”。

标准系统视图控制器

Cocoa Touch层许多框架含有展现标准系统界面的视图控制器。我们提倡您在应用程序中使用这些视图控制器,这样可以让您的程序和系统具有一致的用户体验。如果您需要执行下述任务,请从相应的框架中选择一个视图控制器使用:

  • 显示或者编辑联系人信息 - 请使用Address Book UI框架中的视图控制器。

  • 创建或者编辑日历事件 - 请使用Event Kit UI框架的视图控制器。

  • 创建email或者SMS消息 - 请使用Message UI框架中的视图控制器。

  • 打开或者预览一份文件的内容 - 请使用UIKit框架中的UIDocumentInteractionController类。

  • 从用户的照片库选取一张照片 - 请使用UIKit框架中的 UIImagePickerController 类。

  • 拍摄视频片段 - 请使用UIKit框架中的UIImagePickerController类。

如需了解如何选择使用视图控制器,请查看iOS视图控制器编程指南。如需了解特定视图控制器所展现的界面,请查看相应的框架参考。

外部设备支持

安装iOS 3.2的设备可通过一组设备支持的线缆连接一个外部显示设备。当外部设备连上后,应用程序就可以使用其显示屏显示内容。屏幕的信息,包括屏幕能够支持的分辨率都可通过UIKit框架的接口获取。您也可以通过该框架将应用程序窗口关联到某个屏幕。

  • UIScreen 类用于获取当前所有屏幕(包括设备主屏幕)的屏幕对象。屏幕对象包含屏幕的属性信息(包括将屏幕的尺寸和像素比例也考虑在内的屏幕特征)。

  • 您可以从UIScreenMode 类获得某个具有特定尺寸像素比例的屏幕的信息。

  • 您可以将窗口(使用UIWindow类来表示)指定到某个特定的屏幕。如果您需要对内容作镜像显示,则需要提供两个独立的窗口,然后再在其中显示相同内容。

如需进一步了解上述类可提供的支持,请查看UIKit框架参考中相应的类描述。

Cocoa Touch 层包含的框架

下面部分描述Cocoa Touch层包含的框架以及这些框架提供的服务。

Address Book UI 框架

Address Book UI 框架(AddressBookUI.framework)是一套Objective-C的编程接口,可以显示创建或者编辑联系人的标准系统界面。该框架简化了应用程序显示联系人信息所需的工作,另外它也可以确保应用程序使用的界面和其他应用程序相同,进而保证跨平台一致性。

如果需要进一步了解Address Book UI框架以及如何使用该框架,请查看iOS地址簿编程指南以及iOS地址簿框架参考

Event Kit UI 框架

iOS 4.0引入了Event Kit UI框架(EventKitUI.framework),它提供一个视图控制键可以展现查看并编辑事件的标准系统界面。Event Kit框架(查看“Event Kit框架”可获得该框架的进一步信息)的事件数据是该框架的构建基础。

如需进一步了解Event Kit UI框架类和方法,请查看Event Kit UI框架参考

Game Kit 框架

iOS 3.0引入了Game Kit框架(GameKit.framework)。该框架支持点对点连接及游戏内语音功能,您可以通过该框架为应用程序增加点对点网络功能。点对点连接以及游戏内语音功能在多玩家的游戏中非常普遍,不过您也可以考虑将其加入到非游戏应用程序。此框架通过一组建构于Bonjour之上的简单而强大的类提供网络功能,这些类将许多网络细节抽象出来,从而让没有网络编程经验的开发者可以更加容易地将网络功能整合到应用程序。

如需进一步了解Game Kit框架, 请查看Game Kit 编程指南以及Game Kit 框架参考 。

iAd 框架

iOS 4.0引入了iAd框架 (iAd.framework)。您可以通过该框架在应用程序中发布横幅广告。广告会被放入到标准视图,您可以将这些视图加入到用户界面,并在合适的时机向用户展现。这些视图和苹果的公告服务相互协作,自动处理广告内容的加载和展现,同时也可以响应用户对广告的点击。

如需进一步了解如何在应用程序当中使用iAd,请查看iAd 框架参考

Map Kit 框架

iOS 3.0导入了 Map Kit框架 (MapKit.framework) ,该框架供一个可被嵌入到应用程序的地图界面,该界面包含一个可以滚动的地图视图。您可以在视图中添加定制信息,并可将其嵌入到应用程序视图,通过编程的方式设置地图的各种属性(包括当前地图显示的区域以及用户的方位)。您也可以使用定制标注或标准标注(例如使用测针标记)突出显示地图中的某些区域或额外的信息。

在iOS 4.0系统中,该框架开始支持可拖动标注以及定制覆盖层。可拖动标注允许您通过编程方式或通过用户交互方式重定位某个标注的位置。覆盖层可用于创建多个点组成的复杂地图标注。地图表面诸如公交路线、选举地图、公园边界或者气象信息(例如雷达数据)等可以使用覆盖层进行显示。

如需进一步了解Map Kit框架中的类,请查看Map Kit 框架参考

Message UI 框架

iOS 3.0引入了Message UI框架 (MessageUI.framework)。您可以利用该框架撰写电子邮件,并将其放入到用户的发件箱排队等候发送。该框架提供一个视图控制器界面,您可以在应用程序中展现该界面,让用户通过该界面撰写邮件。界面的字段可以根据待发送信息的内容生成。例如您可以设置接收人、主题、邮件内容并可以在邮件中包含附件。这个界面允许用户先对邮件进行编辑,然后再选择接受。在用户接受邮件内容后,相应的邮件就会放入用户的发件箱排队等候发送。

在iOS 4.0及其后续的系统中,该框架提供一个SMS撰写面板控制器。您可以通过它在应用程序中直接创建并编辑SMS信息(无需离开应用程序)。和电子邮件撰写界面一样,该界面也允许用户先编辑SMS信息再发送。

如需进一步了解Message UI框架中的类,请参考Message UI 框架参考

UIKit 框架

UIKit框架 (UIKit.framework)的Objective-C编程接口为实现iOS应用程序的图形及事件驱动提供关键基础。iOS系统所有程序都需要通过该框架实现下述核心功能:

  • 应用程序管理

  • 用户界面管理

  • 图形和窗口支持

  • 多任务支持

  • 处理触摸及移动事件。

  • 代表标准系统视图和控件的对象

  • 文本和web内容相关操作

  • 剪切、复制以及粘贴

  • 使用动画显示用户界面内容

  • 通过URL方式将其他应用程序整合到系统

  • 苹果推送通知服务支持,请查看“苹果推送通知服务 ”

  • 为残疾用户提供辅助功能

  • 本地通知的调度和发送

  • 创建PDF

  • 使用定制输入视图(其行为类似系统键盘)

  • 创建和系统键盘进行交互的定制文本视图

除了链编至应用程序的基础代码,UIKit还为下述和设备紧密相连的功能提供支持:

  • 加速器数据

  • 内置相机(存在相机的设备)

  • 用户的图片库

  • 设备名称和模型信息

  • 电池状态信息

  • 距离感应器信息

  • 来自绑定听筒的远程控制信息

如需进一步了解UIKit框架的信息,请查看UIKit 框架参考

Cocoa Touch框架

Cocoa Touch框架

Cocoa Touch中的框架
在CocoaTouch框架中几个十分常用的框架
1.音频和视频
Core Audio
OPenAL
Media Library
Av Foundation
2. 数据管理
Core Data
sqlite
3. 图形和动画
Core Animation
OpenGL ES
Quartz 2D
4. 网络
Bonjour
webkit
BSD Sockets
5. 用户应用
Address Book
Core Location
Map kit
Store Kit

Cocoa 和Cocoa Touch的区别 Cocoa是面向Mac os x应用 Cocoa Touch 是iOS开发,以mac os x技术为基础

Cocoa Touch框架引用计数

Cocoa Touch框架引用计数

Cocoa Touch框架提供两种内存管理方式,一种自动内存计数ARC(Automatic Reference Counting ),另一种手动引用技术(manual reference counting)。对于后一种需要程序员自己retain和release,其原则是“责任落实”,谁创建了对象(或保留了以创建的对象),谁就是该对象的拥有方,不再使用时,则要负责释放该所有权。

在手动管理内存时,以下有一些注意点

1 对象加入NSMutableArray实例时,会受到retain消息,数组对象会成为该对象的拥有方,即该对象的retainCount会加1.对象从NSMutableArray实例移出时,会收到release消息,即计数会减1.

        2 在调用UITableView下的  [tableView reloadData] 方法后,作为其dataSource的NSArray实例的retainCount会减1

所以在调用[tableView reloadData] 之前,需要将NSArray的实例retain一下。

       3使用UINavigationController 的 [   pushViewController: VC animated: YES],会使压入栈中的VC的retainCount加1


原文链接: http://blog.csdn.net/xunyn/article/details/8116629

cocoa-touch – Touch ID提示在仅横向应用中显示为肖像

cocoa-touch – Touch ID提示在仅横向应用中显示为肖像

随着新iPad的推出,我正在为我们的下一个应用更新添加触控ID.我有一个仅限横向的应用程序,它始终隐藏运行iOS 8的iPhone 5s上运行的状态栏.

我的触摸ID代码工作正常,但警报只显示为应用程序是纵向的.触摸ID警报背后的背景也会引发纵向状态栏.

>是否可以在景观中显示警报?
>有没有办法不显示该状态栏?

我已经尝试过使用supportedInterfaceOrientations,但触摸ID警报似乎并不关心或引用视图控制器当前显示的内容.

解决方法

这是一个iOS 8的bug.我已经检查了几个应用程序,包括Apple的iTunes Connect应用程序,它们都以纵向模式显示,即使设备处于横向状态

此问题已在iOS 9中修复

更新:这仍然是iOS 9中的一个问题

更新2:这仍然是iOS10中的一个问题.正如@ n​​icolas-miara所说,似乎Apple希望你只在Portrait中使用它

今天关于构建纯Swift Cocoa Touch框架swift combine框架的分享就到这里,希望大家有所收获,若想了解更多关于Cocoa Touch 层 Cocoa Touch 层包含的框架 保留学习用、Cocoa Touch框架、Cocoa Touch框架引用计数、cocoa-touch – Touch ID提示在仅横向应用中显示为肖像等相关知识,可以在本站进行查询。

本文标签: