IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> OS X开发.第四章4.1Sandbox及文件操作 -> 正文阅读

[移动开发]OS X开发.第四章4.1Sandbox及文件操作

4.1 Sandbox及文件操作
OS X自10.6伊始就引入了Sandbox机制,此后若想上架App Store就必须开启此操作。Sandbox是系统为应用分配的特定空间,应用只能在此进行文件操作,若想在其它地方读写则必须得到授权,从而保证了系统的安全性。

4.1.1 Sandbox配置
选择Target,项目,点击Capability加号选项,跳出如下界面
在这里插入图片描述

在该界面选择App Sandbox选项,如下图是Sandbox配置选项界面

在这里插入图片描述
File Access为权限类型,在测试环境下全部选择为“Read/Write”即可(Release环境下只可选择需要用到的)。

4.1.2 读
读取操作我们以典型的文件类型和媒体类型进行示例。

1.文件类型的读取操作

let str = try! String(contentsOfFile: "/Users/mac/Desktop/test.sw![在这里插入图片描述](https://img-blog.csdnimg.cn/7a2e98b722794bf89451597d4ec90da4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAa2ljaW5pbw==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
ift", encoding: String.Encoding.utf8)
print(str)

说明:很多类型的文件实际上是非二进制的,这意味着我们可以以文本方式进行操作。上面以swift类型的文件为例,获取其绝对路径,使用**String(contentsOfFile: )**这个构造方法进行初始化,返回该路径下的文件文本内容。

2.媒体类型的读取操作

let data = NSData(contentsOfFile: "/Users/mac/Desktop/ef.png")
imageView.image = NSImage(data: data as! Data)

说明:这里以一个PNG媒体资源为例,可以先根据文件的绝对路径实例化一个NSData类型的数据,然后再调用某控件的资源初始化方法进行设置。当然,NSImage本身还提供了更为便捷的方法以供初始化读取:

imageView.image = NSImage(contentsOfFile: "/Users/mac/Desktop/ef.png")

在这里插入图片描述

4.1.3 写
写入操作仍以典型的文件类型和媒体类型示例。

1.文件类型的写入操作

let content = "OS X is a supreme moden operating system for software engineer and art designer."
let data = content.data(using: String.Encoding.utf8)
let url = URL(string: "file:///Users/mac/Desktop/osx.txt")!
try! data?.write(to: url, options: Data.WritingOptions.withoutOverwriting)

说明:这里需要注意的地方就是URL创建时其参数前部为“file”开头,和读取的URL不一样。data.write() 这个方法第二个参数为创建选项,意为创建文件时是否覆盖、停止操作。

在这里插入图片描述

2.媒体类型的写入操作

let image = NSImage(named: "user")
let data = image?.tiffRepresentation
let url = URL(string: "file:///Users/mac/Desktop/my.png")!
try! data?.write(to: url, options: Data.WritingOptions.withoutOverwriting)
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:23:57  更:2021-10-09 16:24:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:15:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码