设为首页 收藏本站
查看: 1482|回复: 0

[经验分享] Mac OS 沙盒下创建自有文件以及读写(不使用用户权限,不使用NSSavePanel和NSOpenPanel)

[复制链接]

尚未签到

发表于 2015-12-31 13:14:58 | 显示全部楼层 |阅读模式
  最近做的一个应用要用到临时读写文件,又不能使用用户权限或者NSSavePanel、NSOpenPanel,经过尝试,选择了在Containers中保存文件。在这里,用一个小Demo做演示。
DSC0000.png
  首先给window拖一个textview,拖两个button,分别设置title为Save和Read。
  在AppDelegate.m中创建一个内部类,定义一个插座变量textView



1 @interface AppDelegate()
2 @property (unsafe_unretained) IBOutlet NSTextView *textView;
3 @end
  设置一个获取路径的方法,在此方法中,如果文件存在返回路径,如果文件不存在则创建一个文件。



1 - (NSString *)filePath{
2     NSArray *appDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSAllDomainsMask, YES);
3     NSString *path =  [appDirectory.firstObject stringByAppendingString:@"/Untitle.onecodego"];
4     if (![[NSFileManager defaultManager] fileExistsAtPath:path]) {
5         [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];
6     }
7     NSLog(@"%@",path);
8     return path;
9 }
  创建两个IBAction,并关联到对应的button上



1 - (IBAction)saveButtonAction:(NSButton *)sender {
2     [self.textView.textStorage.string writeToFile:[self filePath] atomically:YES encoding:NSUTF8StringEncoding error:nil];
3 }
4 - (IBAction)readButtonAction:(NSButton *)sender {
5     NSData *data = [NSData dataWithContentsOfFile:[self filePath]];
6     NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
7     [self.textView.textStorage setAttributedString:[[NSAttributedString alloc] initWithString:str]];
8 }
  此时点击Save会将textView中的字符串保存到本地: /Users/onecodego/Library/Containers/com.onecodego.myTest/Data/Documents/Untitle.onecodego 。
  点击Read会将本地文件中保存的数据读取出来显示到textView
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-158836-1-1.html 上篇帖子: mac os部署php环境 下篇帖子: mac os x 添加 用户 所属 组
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表