首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NSPersistentDocument 的数据存储何时移动到最终保存位置?

在 macOS 应用程序中,NSPersistentDocument 类用于实现基于 Core Data 的文档。当文档数据需要保存到最终位置时,系统会自动处理数据的移动。

具体来说,当文档数据需要保存到最终位置时,NSPersistentDocument 会将数据从临时位置移动到最终位置。这个过程通常在以下情况发生:

  1. 当用户选择保存文档时。
  2. 当用户关闭文档时。
  3. 当用户执行撤销操作时。

在这个过程中,NSPersistentDocument 会自动处理数据的移动,并在必要时更新文档的元数据。

需要注意的是,NSPersistentDocument 类的具体实现可能因应用程序而异,因此具体的数据移动时机和方式可能会有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【愚公系列】软考高级-架构设计师 008-存储技术(磁盘)

与主存相比,外存储器提供了更大的存储容量和持久存储能力,但访问速度较慢。外存储器主要用于保存不需要立即访问的数据,以及在系统关闭后仍需要保留的信息。...成本效益:相比于RAM,外存储器通常提供更高的成本效益,特别是对于大量数据存储的需求。 数据备份和共享:外存储器常用于数据备份和共享,便于数据的长期保存和在不同设备间的传输。...持久性:数据被永久保存在磁盘上,即使在断电的情况下也不会丢失。 成本效益:与固态驱动器相比,硬盘驱动器通常提供更低的成本per GB,使其成为大容量数据存储的经济选择。...首先,磁头需要移动到目标柱面上(移臂调度),然后等待磁盘旋转,使目标扇区旋转到磁头下方(旋转调度)以进行数据的读写。 D. 在访问同一磁道的信息时,只需要进行移臂调度: 这个说法不正确。...这反映了磁盘访问过程中的自然顺序,首先是磁头移动到正确的柱面上,然后磁盘旋转到正确的位置以访问数据。这个过程是优化磁盘访问时间和提高磁盘I/O性能的关键。

18800

Vim编辑器常用快捷键

:重新加载当前文档,并丢弃已做的改动 :w:保存修改。 :wq:保存退出,即使文件没有被修改也强制写入,并更新文件的修改时间 ZZ:保存退出。...h或者退格: 左移一个字符;l或者空格: 右移一个字符;j: 下移一行;k: 上移一行;gj: 移动到一段内的下一行;gk: 移动到一段内的上一行;+或者Enter: 把光标移至下一行第一个非空白字符。...w: 前移一个单词,光标停在下一个单词开头;W: 移动下一个单词开头,但忽略一些标点;e: 前移一个单词,光标停在下一个单词末尾;E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点;b: 后移一个单词...d: 删除(剪切)在可视模式下选中的文本。d或者D: 删除(剪切)当前位置到行尾的内容。d0: 删除(剪切)当前位置到行首的内容d1G或者dgg: 剪切光标以上的所有行。dG: 剪切光标以下的所有行。...y: 复制在可视模式下选中的文本。yy或者Y: 复制整行文本。y: 从光标当前位置复制到行尾。y0: 从光标当前位置复制到行首。y1G或ygg: 复制光标以上的所有行。yG: 复制光标以下的所有行。

3.4K20
  • Vim命令使用说明

    :n1,n2w filename – 选择性保存从某n1行到另n2行的内容。 :wq – 保存并退出。 ZZ – 保存并退出。 :x – 保存并退出。...w: 前移一个单词,光标停在下一个单词开头; W: 移动下一个单词开头,但忽略一些标点; e: 前移一个单词,光标停在下一个单词末尾; E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点; b:...n%: 到文件n%的位置。 zz: 将当前行移动到屏幕中央。 zt: 将当前行移动到屏幕顶端。 zb: 将当前行移动到屏幕底端 标记 使用标记可以快速移动。...m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。 `{a-z}: 移动到标记位置。 ‘{a-z}: 移动到标记行的行首。...`{0-9}:回到上[2-10]次关闭vim时最后离开的位置。 : 移动到上次编辑的位置。''也可以,不过精确到列,而'‘精确到行 。如果想跳转到更老的位置,可以按C-o,跳转到更新的位置用C-i。

    2.6K11

    IdeaVim 基本操作

    ge 后移一个单词,光标停在上一个单词末尾 { 前移1段 } 后移1段 上面的操作都可以配合n使用,比如在正常模式下输入3h,则光标向左移动3个字符 快捷键 含义 0 移动到行首 $ 移动到行尾...zz 将当前行移动到屏幕中央 zt 将当前行移动到屏幕顶端 zb 将当前行移动到屏幕底端 文本的插入 基本插入 快捷键 含义 i 在光标前插入 a 在光标后插入 I 在当前行第一个非空字符前插入 A...y[n]w 复制一(n)个词 y[n]l 复制光标右边1(n)个字符 y[n]h 复制光标左边1(n)个字符 y$ 从光标当前位置复制到行尾 y0 从光标当前位置复制到行首 :m,ny 复制m行到n行的内容...(剪切)当前位置到行尾的内容 d[n]w 删除(剪切)1(n)个单词 d[n]l 删除(剪切)光标右边1(n)个字符 d[n]h 删除(剪切)光标左边1(n)个字符 d0 删除(剪切)当前位置到行首的内容...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.2K30

    【IOS开发高级系列】CoreData专题

    NSManagedObjectContext 常用方法 -save:将数据对象保存到数据文件 -objectWithID:查询指定 Managed Object ID 的数据对象 -deleteObject...:由于 Context 可以管理从不同数据文件而来的数据对象,这个接口的作用就是指定数据对象的存储数据文件(通过指定 PersistantStore 实现) -executeFetchRequest:...NSPersistentStoreCoordinator 常用方法 -addPersistentStoreForURL:configuration:URL:options:error: 装载数据存储,对应的卸载数据存储的接口为...as"相似,但是操作成功后,迁移前的数据存储不可再使用 -managedObjectIDForURIRepresentation: 返回给定 URL所指示的数据存储的 object id,如果找不到匹配的数据存储则返回...通常使用NSPersistentDocument 的默认实现就足够了,它从 Info.plist 中读取 Document types 信息来决定数据的存储格式(xml,sqlite, binary)。

    72150

    数据结构学习-python实现-数据排序--0411

    数据为何要排序?首先想到的是排序的数据能够更加便于观察,并更好的使用查找算法,降低复杂度。 数据排序算法很多,由简单到复杂,逐渐深入。 # 冒泡法排序。每次从所有的数据项中,将最大的数据移动到最后。...def bubblesort(alist): for passnum in range(len(alist)-1, 0, -1): # 此次数据的最终位置,即数据的尾部 for...原因是数据均匀,无天然形成的顺序数据,反而 # 增加了判断交换的步骤,导致变得复杂。 # 选择排序,与冒泡排序的方法相同,每趟记录最大项的下标位置,与最后一个值交换。并不需要每步都交换。...for index in range(1, len(alist)): currentvalue = alist[index] # 保存当前值为临时变量,因为它的位置由于插空,将被占用。...alist[position] = alist[position-1] # 较大值后移的过程 position = position -1 # 空位前移的过程

    35800

    Linux-vim

    2. vim常用命令 2.1 一般模式中的命令 2.1.1 光标移动 命令 说明 h,← 光标左移一个字符 j,↓ 光标下移一个字符 k,↑ 光标上移一个字符 l,→ 光标右移一个字符 n[h,j,k,...M 光标移动到屏幕中央一行的第一个字符 L 光标移动到屏幕最后一行的第一个字符 G 光标移动到文件最后一行 nG n为数字,光标移动到文件第n行 gg 光标移动到文件第一行,相当于1G n<Enter...复制光标所在行到第n行 yG 复制光标所在行到最后一行 y0 复制光标所在字符到该行行首 y$ 复制光标所在行到该行行尾 p 将复制的数据粘贴在光标下一行 P 将复制的数据粘贴在光标上一行 J 将光标所在行与下一行的数据合并成一行...命令 说明 :w 将编辑的数据写入硬盘 :w!...强制保存并离开 ZZ 若文件没有改动,则不保存离开,如果文件有改动,则保存后离开 :w[filename] 将文件另存为filename :r[filename] 在光标处插入另一个文件的数据 :n1,

    6.2K11

    vim编辑器操作汇总

    命令行模式   任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。...在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC即可。 末行模式   末行模式也称ex转义模式。...l: 右移 M: 光标移动到中间行 L: 光标移动到屏幕最后一行行首 G: 移动到指定行,行号 -G w: 向后一次移动一个字 b: 向前一次移动一个字 {: 按段移动,上移 }: 按段移动...,不包含光标所在字符 dw: 删除光标开始位置的字,包含光标所在字符 撤销命令: u: 一步一步撤销 Ctr-r: 反撤销 重复命令: .: 重复上一次操作的命令 文本行移动: >>: 文本行右移...<<: 文本行左移 复制粘贴: yy: 复制当前行,n yy 复制 n 行 p: 在光标所在位置向下新开辟一行,粘贴 可视模式: v: 按字符移动,选中文本 V: 按行移动,选中文本可视模式可以配合

    1.4K70

    【系统架构设计师】计算机组成与体系结构 ⑩ ( 磁盘管理 | 磁盘移臂调度算法 | 先来先服务算法 | 最短寻道时间优先 | 扫描算法 | 循环扫描算法 )

    一、磁盘移臂调度算法 1、磁盘移臂调度算法简介 磁盘 数据块读取 的 性能 主要由 寻道时间 旋转延时 决定 ; 旋转延时 是 硬盘的 盘面 持续保持匀速旋转 实现的 , 这是 硬盘 本身的硬件特性 ,...该延时没有规律 ; 磁头的寻道时间 , 是可以使用算法进行优化的 , 该算法称为 " 移臂调度算法 " , " 磁盘移臂调度算法 " 在 磁盘调度器 Disk Scheduler 中实现 , 用于..., 先为 申请 ① 服务 , 需要从 100 号磁道 移动到 55 号磁道 , 移动了 45 个磁道 ; 第 ② 个数据请求 , 申请访问 58 号磁道 , 当前处于 55 号磁道 , 移动 3 个磁道..., 去访问 58 号磁道 ; 最终访问完 ① ~ ⑨ 这 9 个数据请求 , 平均每个数据请求 寻道长度为 55.3 个 ; 3、最短寻道时间优先 最短寻道时间优先 , SSTF , Shortest...① ~ ⑨ 九个数据访问请求 , 磁头寻道 并不会按照 请求顺序 进行寻道 , 而是按照 磁道 距离进行 寻道 ; 离 初始位置 100 号磁道 , 最近的 被访问磁道号 是 90 , 那么优先访问

    48910

    导航栏滚动吸顶并自动高亮和点击跳转锚点

    2021-01-16 07:37:33 在阿里云的云市场页面上有一个效果,就是api导航栏当滚动条滚动到其所在位置时,自动吸顶,当滚动到下方所在导航栏指定的介绍时,自动高亮其导航栏。...实现方法 正常情况下我们点击自动定位到其所在位置一般用id锚点的方式,但是这种方式有一个缺陷就是无法实现滚动条缓动效果,而且带url上还会通过hash的方式显示出ID,另外也无法实现滚动到内容所在位置自动高亮导航栏...,另外增加了一个class为zhanfIx的地址,因为当导航栏吸顶时,此处会因为空出位置,下面内容上移,而产生不和谐的效果,我们需要在其吸顶的同时增加一个div来占位,以增加平滑的效果。...下面我们来看一下导航栏吸顶和滑动到指定位置导航栏高亮的逻辑。...,同时点击导航栏滚动条缓动至锚点位置,实现的最终效果可以看阿里云市场详情页中的效果,比他显示的效果多了滚动条缓动效果。

    10.5K50

    vim命令快捷键

    Vim是一款文本编辑器,经常被程序员使用,也是Linux系统中常用的编辑器之一。它以快速、高效、灵活而著称,由于其强大的快捷键功能,可以使用户在编辑文本时更快更高效。...光标移动 h - 光标左移 j - 光标下移 k - 光标上移 l - 光标右移 0 - 移动到行首 $ - 移动到行末 w - 向前移动一个单词 b - 向后移动一个单词 gg - 移动到文件的开头...G - 移动到文件的末尾 编辑 i - 进入插入模式,在光标处插入文本 a - 在光标后插入文本 o - 在光标下方新开一行 O - 在光标上方新开一行 x - 删除光标所在位置的字符 dd - 删除整行...保存和退出 :w - 保存文件 :wq - 保存并退出 :q!...+ g - 显示当前文件的状态信息 Ctrl + o - 回到上一个位置 Ctrl + r - 重做上一个操作 Ctrl + x + Ctrl + n - 自动补全 :help - 查看帮助信息

    1.2K40

    用 testdisk 恢复 Linux 上已删除的文件

    除非你用 shred 等工具把它擦掉,否则数据仍然会放在你的磁盘上 —— 而恢复已删除文件的最佳工具之一 testdisk 可以帮助你拯救它。...一旦文件被成功地还原和验证,就可以将它们移回它们的所属位置,并将它们的所有权也恢复。...下一步是选择被删除文件所存储的磁盘分区(如果没有高亮显示的话)。根据需要使用上下箭头移动到它。然后点两次右箭头,当 “Proceed” 高亮显示时按回车键。...(参见前面的说明,在将文件移回原点之前,先在一个合适的地方进行检查)。...在将文件移回原来的位置之前,你可能应该先验证恢复的文件看起来是否正确。确保你也恢复了原来的所有者和组,因为此时文件由 root 拥有。

    6.7K20

    快速上手 Mac 电脑

    触摸板操作 打开系统偏好设置-触控板选项查看学习常用操作 双指触控实现鼠标右键功能 建议打开轻点来点按,和 win 操作相同 系统偏好设置-辅助功能-指针控制-触控板选项-启用拖移-三指拖移:单手三指拖移文件...command + x 对于文件: 多选:按住 command 再选择 复制一个副本:command + d 复制:command + c 粘贴:command + v 剪切:先 command + c 要剪切的文件...,再 command + option + v 对应位置 保存:command + s 撤销:command + z 撤销上一步撤销:command + shift + z 屏幕操作 Mac 的程序窗口最大化相当于新建了一个桌面...command + t 切换标签页:control + tab 关闭当前标签页: command + w 切分窗口:command + d 清屏:command + k 清除命令行:command + u 光标移动到行开头...:control + a 光标移动到行结尾:control + e

    18210

    用 testdisk 恢复 Linux 上已删除的文件

    当你用 testdisk 恢复被删除的文件时,你最终会将恢复的文件放在你启动该工具的目录下,而这些文件会属于 root。出于这个原因,我喜欢在 /home/recovery 这样的目录下启动。...一旦文件被成功地还原和验证,就可以将它们移回它们的所属位置,并将它们的所有权也恢复。...下一步是选择被删除文件所存储的磁盘分区(如果没有高亮显示的话)。根据需要使用上下箭头移动到它。然后点两次右箭头,当 “Proceed” 高亮显示时按回车键。...(参见前面的说明,在将文件移回原点之前,先在一个合适的地方进行检查)。...在将文件移回原来的位置之前,你可能应该先验证恢复的文件看起来是否正确。确保你也恢复了原来的所有者和组,因为此时文件由 root 拥有。

    59210

    《重构》第十一章 - 读后感(处理概括关系)

    看到概括关系这个词,我也挺疑惑的,仔细一看居然表达的是继承关系,那么处理概括关系就是说处理继承关系。继承关系的话必然有属性和方法等,那么这块的处理概括关系就是说处理继承关系中属性或者方法的存在位置。...1.字段上移 两个子类有相同的字段,那么就该字段移到父类中! 2.函数上移 有些函数在各个子类中产生的完全相同的结果,将该函数移动到超类!避免行为重复是很重要的,尽管重复自身只会成为错误的源泉。...3.构造函数本体上移 如果在各个子类中拥有一些构造函数,他们的本体几乎完全一致,在超类中新建一个构造函数,并在子类构造函数中调用它。...11.以委托取代继承 某个子类只使用超类接口的一部分,或者根本不需要继承而来的数据,那么在子类中新建一个字段用来保存超类,调整子类函数,使它改为委托超类;然后去掉两者之间的继承关系。...意思是我们继承一个类,然后这个类根本没啥用,主要是其数据我们使用不到,那么就新建一个属性,将父类的对象设置进去。然后去掉继承关系。

    68030

    vim常用命令详解(vim使用教程)

    patterns的具体内容我没有看过,但是正常情况下,你只要输如你想找的内容就好了 命令 vim +/诙谐的 a.txt 的运行结果如下:绿色位置为光标的初始位置,暗黄色位置为所有匹配到的文字 -b...使用/进入的末行模式主要用来查找字符串,在下面进行详细解释 正常模式必要命令详解 h #左移一个字符 l #右移一个字符 j #下移一行 k #上移一行 dd #删除一整行...0 #移动到行首 g0 #移动到当前屏幕的行首 H #把光标移动到屏幕最顶端的一行 M #把光标移动到屏幕中间一行 L #把光标移动到屏幕最底端的一行 gg #移动到文件的头部...的位置 zz #将当前行移动到屏幕中央 zt #将当前行移动到屏幕顶端 zb #将当前行移动到屏幕底端 末行模式常用命令详解 :q #退出当前文件且不保存,q为quit缩写 :q...#对于只读文件可强制保存更改 :wq #保存并退出 :r filename #在当前位置插入令一个文件 :r !date #在当前位置插入当前日期 :r !

    3.4K30

    【盟友分享】vim学习之路-vim基本操作

    文件操作: :e filename 心打开一个文件 :w 保存文件 :wq 保存并退出文件 :q 退出文件 :!...q 强制退出文件 vim中不同保存退出是有区别的 :x 写入文件并退出(仅当文件被修改时才写入,并更新文件和修改时间;否则不会更新文件修改时间) :wq和ZZ 强制写入并退出(文件没有被修改也强制写入...,并更新文件的修改时间) 操作回退和恢复: u 回退到上一次操作 U 本行改动恢复 ctrl+r 与u操作相反的操作 移动操作: j 下移一行 k 上移一行 h 左移一列 l 右移一列 0...移动到开头 $ 移动到结尾 w 移动到下一个单词开头 e 移动到下一个单词结尾 fx 移动到本行之后第一个出现x字母的位置 tx 移动到本行之后第一个出现x字母的前一个位置 gg 跳到文件首 G 跳到文件尾...zz把当前位置处于屏幕的正中央。 zt 把当前位置处于屏幕的顶端。助记:top。 zb 把当前位置处于屏幕的底端。助记:bottom。

    2.1K60

    虚拟化平台上远程连接遇到的几个问题分析

    如果鼠标从point1(x1,y1)移动到point2(x2,y2),如果画图响应很快,那么在显示器上看到的鼠标就移动到对应的位置上,如果画图很慢,就会看到鼠标是一顿一顿的移动到位置上。...3,鼠标移速不一致 在vnc上,是一个常见问题。可以看到虚拟机里面的鼠标和外面物理机上的鼠标的位置不一致,而且它们的移速不一致。在外面移动了很大一段距离,在虚拟机里面只是移动了一小段。...tablet并不是从本质上解决鼠标的移速问题,而且通过tablet校验,修改了数据。而且,这种方法在windows上表现比较好。 4,鼠标不重合 在web的vnc上,这个问题比较常见。...表现出来的现象是,鼠标在物理机上,和虚拟机里面的移速是一致的,但是始终相差一段距离。 因为vnc的内容是通过web view实现,web在计算鼠标的位置x,y的时候,是从view的起始地址开始计算的。...算下来,整个路径还是挺长的。而且没有太多的改进空间。物理机上的鼠标已经移动到了新的位置,但是web上的内容需要经过这么长的路径才能更新出来。所以就看到了鼠标拖影。

    6.3K80

    【集创赛】arm杯国奖作品推荐--技术文档!

    ITCM相当于代码区(CODE区,起始于0x0地址)的硬件实现,主要是采用FPGA的BRAM资源实现的存储区域,用来保存编译好的处理器操作指令,以供I-CODE和D-CODE总线访问。...在所有移窗结束后,记录到的人脸位置将被检查是否存在重叠、重复记录的情况。检查完毕后,将得到最终的人脸数目及位置信息。...图4.2 多线程移窗并行加速器框架 4.3.1 加速器的数据流动 为了尽可能减短数据的传输路径,我们把移窗并行加速器直接接在DDR上,所有待处理的输入数据都不会经过Cortex-M3处理器,加速器将从片上存储模块...常规的移窗操作是逐个移窗位置依次进行的,即只有在一步移窗运算结束后,才进行下一步的移窗,同时运行下一次的级联决策树运算。...图4.3展示了单线程移窗和多线程移窗的区别,在多线程移窗模式下,加速器可以同时处理多个移窗位置的检测任务,从而极大提高了人脸检测的速度。 ?

    1.7K10
    领券