十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文介绍在iOS开发中,Swift实现清除缓存功能。主要分为统计缓存文件大小和删除缓存文件两个步骤:
创新互联公司企业建站,10余年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于网站设计、成都网站制作中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。
继续上一篇 开始用Swift开发iOS 10 - 18 Search Bar 和 UISearchController ,这一篇使用 UIPageViewController 构建介绍页面,与使用 LaunchScreen.storyboard 的启动页不同。
类似 UINavigationController , UIPageViewController 也是一种容器类型的控制器。这种容器类型的控制器是用来管理其它多个控制器的。
如果容器内的控制器页面元素类似(上图就是这种情况),可以通过一个控制器重复利用。
setViewControllers 方法是设置 UIPageViewController 管理的视图控制器。
页面指示就是一般在页面下用于分辨当前是第一个页面的几个小点。
实现 UIPageViewControllerDataSource 协议的两个方法: presentationCount(for:) 表示总共有几个小点(页面)。
presentationIndex(for:) 表示当前页面的索引。
不用默认的页面指示,就要把上面两个方法删除,然后使用 UIPageControl 。
完成类似下面:
但因为之前是利用 RestaurantTableViewController 的 viewDidAppear 方法显示介绍页的,而 viewDidAppear 方法是页面显示后就调用一下,这样就出现不停进入介绍页。实际上只需要第一次打开app的时显示介绍页就可以了。
UserDefaults 是用来管理应用和用户相关的设置的。也就是可以用 UserDefaults 存储一些用户相关的少量数据,比如上面的是否看过介绍页,也就是是否点击过DONE按钮了。
UserDefaults 也是通过单例模式进行操作的,通过类属性 standard 获取单例。
完成介绍页。学习了 UIPageViewController 和 UserDefaults 。
Beginning-iOS-Programming-with-Swift
此文是学习 appcode 网站出的一本书 《Beginning iOS 10 Programming with Swift》 的一篇记录
Swift 语言有很多先进的特性,不过实话实说(虽然我自己已经为Swift贡献了无数内容),iOS开发角度,OC的二进制发行版本要小巧很多,在Mac和Linux上开发还没有到达C++的成熟程度和兼容性,局限性还是比较大的;建议从C/C++/OC出身的程序员可以学习Swift,但是不要轻易放弃老本行,这是根本。
1:大家想使用混编的话,记住架桥。
2:当项目创建swift的时候,“文件名-swift”里面已经包括了Swift文件和初始化等方法,注意的一点就是当OC调用Swift的时候。直接引用头文件“文件名-swift”就可以,不要添加调用类***swift.h文件,否则文件会出现引用框架出现错误。
import UIKit
class KGCFeedBackView: UIView,UITableViewDataSource,UITableViewDelegate {
}
在ios的OC和Swift混合开发无非是2种,一种是在OC的项目中使用Swift语言开发,这里就需要创建Swift文件(或者引用Swift写的的第三方库),另一种是在Swift项目中使用OC语言开发,这里就需要创建OC文件,(或者引用OC写的的第三方库)
首先我们在一个已有的OC的项目中,创建一个Swift文件
这里Xcode就会自动提示我们如:图1
Would you like to configure an Objective-C bridging header?
Adding this file to ocProjectUseSwift will create a mixed Swift and Objective-C target. Would you like Xcode to automatically configure a bridging header to enable classes to be accessed by both languages?
提示我们创建一个桥接的头文件,当我点击 “ Create Bridging Header”,Xcode就给我们自动创建,自动创建的规则是:项目名+ "-Bridging-Header.h" 如图2
同时在项目中创建一个Swift文件
然后在在 targets - Build Settings - Packaging 中设置Defines Module 为YES
设置完后开始使用,怎么在oc中使用Swift的类呢?
重点: 在文件中引用 #import "ocProjectUseSwift-Swift.h" 记住不是我创建的SecondVC.swift,是“项目名-Swift.h"文件名 ,引入这个文件就引入了所有的Swift文件内的类、方法、属性
说明:这个文件是系统自动创建,自动添加所有我们创建的Swift的类的方法和属性
前提是要在方法和属性前面要加@objc 如图3:
用@objc声明好之后,在我们引用的是“项目名-Swift.h"文件名的 #import "ocProjectUseSwift-Swift.h" 内就看到有标记了如图4
这里分了3块,红色和绿色标记框内是我们自己标记的oc可用的属性和方法,蓝色框内是系统自己生成的oc可以初始化方法
具体使用就在oc文件中,如图5:
此事,在这个OC创建的项目中,我们创建的Swift文件怎么使用OC创建的类呢?
这里就用到我们创建的桥接头文件了,在图2中的桥接头文件,引入OC的头文件,如图6
就这样很简单,所以Swift文件的类都可以使用这个OC文件内的类了,使用起,和OC调用OC的类一样,如如图7和图8
Swift的项目中,第一次创建OC的文件,此时系统会自动帮我们创建桥接头文件,如图9
然后就有了和图2一样的桥接头文件,剩下的就和图6一样,在桥接头文件内引入头文件,即可使用OC的类,第三方库如果也是OC写的,在引入的时候也自动会加这个桥接头文件,当然一个项目只能加一次,加过的就不需要加了