iOS 在文件中访问 Document Directory
发表于|更新于
|浏览量:
iOS 在文件中访问 Document Directory
iOS 11之后,在 Plist 中设置LSSupportsOpeningDocumentsInPlace为 YES,且UIFileSharingEnabled为 YES,可以从系统的Files应用中访问应用的 Documents 目录。
如下:
从系统的文件打开,查看我的 iPhone如下,开启了此功能的应用可以从这里面看到
注意:此目录是 APP 的Documents目录,所以 APP 删除后,目录就消失了。
参考:
文章作者: 今是昨非
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
相关推荐
2022-01-06
Swift后缀表达式(逆波兰式)转换计算
Swift后缀表达式(逆波兰式)转换计算背景最近在开发《挑战24点》的过程中遇到了一个问题,即,如何计算常用数学表达式的结果,即,给定字符串8 - (6 + 4 / 2 - 1) * 2,怎么计算得到结果,并且得到计算的过程。 网上查资料发现,大部分都是类似系统计算器的处理,在遇到第二个运算符时,就把前一步的操作结果计算出来。这样的处理方式并不适用于笔者想要解决的问题。 进一步搜索后发现,前缀表达式、中缀表达式、后缀表达式的概念,给定的字符串8 - (6 + 4 / 2 - 1) * 2属于中缀表达式,而想要计算机得出结果,可以转为前缀表达式或者后缀表达式,然后再对转换后的表达式进行计算。 这里采用中缀表达式转后缀表达式,然后计算后缀表达式得出结果,步骤如下。 Swift 中缀表达式转后缀表达式什么是中缀表达式、后缀表达式?首先理解中缀表达式和后缀表达式分别是什么? 中缀表达式: 是常用的算术表示方法,操作符处于操作数的中间,比如 (a + b),即中缀形式,故而称之为中缀表达式。 后缀表达式: 运算符写在操作数之后,比如 (a, b, +),称之为后缀表达式,又名...
2022-05-23
图片压缩 mac 应用开发
图片压缩 mac 应用开发背景3年前有个项目BatchProssImage,使用 Python 写的批量压缩图片的,最新再次使用时,发现忘记了怎么使用,所以就有了把这个Python 实现的工具,做成一个简单的 mac app 的想法。 过程想法很简单:印象中当时这个工具是使用 tinypng 的 api 压缩的,所以开发一个 mac客户端,调用压缩的接口,导出照片就可以。开始动工。 首先 mac 客户端的 UI 从哪里来?之前有个项目OtoolAnalyse——分析Mach-O文件中无用的类和方法,是借LinkMapUI 来实现的。这里想了想,嗯,还可以用这个方法。打开项目一看,OC 的,还是用 Swift 写一遍吧。 UI 实现想一下大致需要哪些功能, 选择文件 || 目录 选择导出目录 开始压缩 压缩进度显示 噢噢,还有一个,tinypng apikey 输入 再考虑一下,选择导出目录是否必要?之前笔者自己使用其他 APP 选择导出时,打断先有的操作且不说,对于选择困难来说,每次考虑要导出到哪里都是一个问题,要不要新建一个文件夹,还选择同目录会是什么效果等等。 改为 ...
2021-08-02
iOS 启动时间优化
iOS 启动时间优化——相关背景iOS的启动时间优化有很多相关的文章,本来不打算写,但是总归是自己整理一遍印象更深刻。这里打算从原理-实践-面试相关三个方面来入手。首先要理解APP启动的原理,启动做了什么?然后针对启动过程中的事件哪些是开发可以进行优化的,去实践?最后则是,面试相关,与启动优化相关的面试有很多,笔者打算列举一下,分别涉及到启动的哪些问题。 启动原理启动分为冷启动和热启动。冷启动指的是APP进程被杀掉后,从零打开;热启动指的是,APP进入后台,再切换到前台唤起到过程。这里通常说的启动优化,指的是冷启动优化。(Ps: 这里某些版本会出现,刚杀掉的APP,立即再次打开,会直接闪退的问题,是系统的Bug)。 冷启动的过程分为main函数之前(pre-main)和main函数之后两个阶段。 pre-main阶段就如很多文章说的: pre-main阶段的过程分为dylibs loading ——> rebase/binding ——> ObjC setup ——> initializer四个部分。每个部分吧啦吧啦…但每次问到这个时候,死记硬背出来真的累人...
2022-03-29
图片中多个二维码选择的实现
背景买早餐的时候会遇到,支付宝和微信的二维码贴在一起,然后扫码的时候两个二维码一起被识别出来的情况。之前的处理可能是:APP内部判断 是自己的 Scheme 的时,自动跳转;后来发现变成了识别到多个二维码时,弹出二维码选择页,用户选择具体二维码后,再跳转。 公司的项目一直没有做这个功能,最近有时间,就来整理添加到项目中,这里分享记录一下实现的过程。 过程整个的过程是: 识别二维码 只有一个,则直接跳转; 有多个二维码信息,则跳转二维码选择页面; 二维码选择页面标记出每个二维码的位置; 点击对应位置的二维码,跳转对应的链接。 二维码识别二维码识别的逻辑,代码如下: 12345678910111213// UIImage + Category//识别二维码图片- (NSArray <CIFeature*> *)imageQRFeatures { CIImage *ciImage = [[CIImage alloc] initWithCGImage:self.CGImage options:nil]; CIContext *co...
2022-09-05
Carthage使用
背景之前一直用CocoaPods,这次做编译时间优化时,把某些Pod依赖的库改为了Carthage依赖的,这里记录一下Carthage的使用。 使用安装使用brew安装,简单方便 1brew install carthage 使用在项目所在文件夹,即.xcodeproj所在的文件夹下,创建Cartfile 1touch Cartfile 然后打开Cartfile 1open Cartfile -a Xcode 添加要依赖的第三方库,注意依赖版本的指定,指定版本和指定范围的写法,如下: 1234567891011github "krzyzanowskim/CryptoSwift" ~> 1.4.0github "evgenyneu/keychain-swift" ~> 19.0github "ibireme/YYKit"github "ReactiveX/RxSwift" "6.5.0"github "onevcat/Kingfisher" ...
2022-09-27
Xcode 14新建项目 Pod init失败
Xcode 14新建项目 Pod init失败背景使用Xcode 14.0(14A309)新建了一个项目,然后运行Pod init,就报错,[Xcodeproj] Unknown object version (56). (RuntimeError)和can't modify frozen String (FrozenError)。 排查一开始看报错以为是cocoapods出问题了,最坏的打算是重装CocoaPods,但是先去搜索一下,看是否是其他原因导致的,或者有没有遇到同样错误的。 搜索can't modify frozen String (FrozenError),搜出来都是m1芯片怎么怎么的,但是我的电脑不是m1芯片的,所以不是这个问题。 搜can't modify frozen String (FrozenError),发现了pod init cause RuntimeError - [Xcodeproj] Unknown object version 和 RuntimeError - [Xcodeproj] Unknown object ...