作者uranusjr (←这人是超级笨蛋)
看板MacDev
标题Re: [问题] ios存图片到ipad中
时间Mon Jun 9 22:15:00 2014
※ 引述《issuemylove (skill)》之铭言:
: 想请问各位大大
: 我想要将网路上的图片存入ipad中,以便日後使用
: 後来我查到一个方法
: NSString *path = NSSearchPathForDirectoriesInDomain(NSDocumentDirectory, ...);
: 来取得存取路径
: 後来想想不对,实在是对ios内部File System不熟
: 就去找查了一些资料
: (app沙池内存有一些目录)
: 想想上述程式码的 path 只到的应该是 document 目录吧
: 後来看到一些人是用 NSFileManager 来进行操作
: ...反正我是搞混了,到底是要用NSFileManager还是 NSSearch...InDomain啊?
: 最後连图片到底适不适合存在 document 目录中都有点不确定了= ="
: 谢谢各位的解惑
要把图片存到目录内有两个步骤
1. 决定你要存到哪里
2. 真的存进去
NSSearchPathForDirectoriesInDomain 的用途是前者
因为 iOS app sandbox 的真实路径是由 OS 决定, 所以要用它得到可用的路径
NSFileManager 的用途则是後者
它可以用来检查目录里面的内容、建立新目录、建立(空白)档案等等
先回答你最後一个问题:图片要存在哪?
iOS app 是 sandboxed, 除非考虑 iOS 8 的 extensions, 否则档案只有你看得到
所以基本上你高兴存哪就存哪, 没人会阻止你
不过事实上系统内建有一个 NSPicturesDirectory, 看起来就是存图片的地方
完整的列表在这里
http://goo.gl/qK0UBs
要如何写入档案可以看这篇(随便找的)
http://furnacedigital.blogspot.tw/2013/08/nsfilemanager.html
从网路上抓的图片大概会是 NSData(或 UIImage, 如果是後者就先转成 NSData)
然後 NSData 本身就有可以存入档案的 methods
所以如果你只是要直接存入 NSPicturesDirectory, 其实找到路径直接用就可以
不过若需要确认会不会复写旧档或建立子目录之类的, 就要用到 NSFileManager
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.161.94.175
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MacDev/M.1402323303.A.1D6.html
1F:推 SwiftLang:原来有NSPicturesDirectory这种东西...... 06/09 22:37
2F:推 issuemylove:感谢大大的提点! 所以UIImage本身的 writeToFile 06/10 10:34
3F:→ issuemylove:本身也有用到NSFileManager来存档罗! 06/10 10:34
4F:→ issuemylove:很简单明了! 感恩! 06/10 10:35
5F:→ issuemylove:试了一下 NSPictureDirectory 无法在实机建立资料夹 06/10 16:30
6F:推 issuemylove:换成NSDocumentDirectory就可以 06/10 17:18