小编Hir*_*aku的帖子

无法将文件保存到iOS 8上的App Groups

我试图用来- (NSURL *)containerURLForSecurityApplicationGroupIdentifier:(NSString *)groupIdentifier在iOS 8 b4上的容器应用程序和扩展程序之间保存/加载文件.

这是代码:

NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:groupID];
containerURL = [containerURL URLByAppendingPathComponent:[NSString stringWithFormat:@"Library/Caches/test.txt"]];
NSString* string = @"hihihihihi";
NSError* error;
[string writeToURL:containerURL atomically:YES encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",error);
Run Code Online (Sandbox Code Playgroud)

我将此代码放在扩展(自定义键盘)和容器应用程序中.当我在iOS模拟器上运行它时,它们都可以成功保存文件.但是在iOS设备上,扩展程序无法保存文件(而容器应用程序仍然可以)

当扩展程序试图保存文件时,控制台显示可可错误513.

2014-07-31 01:37:49.316 TestExtention [2359:288820] Error Domain = NSCocoaErrorDomain Code = 513"无法完成操作.(Cocoa error 513.)"UserInfo = 0x15df2100 {NSFilePath =/private/var/mobile/Containers/Shared/AppGroup/4FA2DA5E-89C3-4BC3-AA5B-DD869827C5E7/Library/Caches/test.txt,NSUnderlyingError = 0x15df1d90"操作无法完成.操作不允许"}

这是iOS 8扩展的限制吗?

iphone sandbox objective-c ios8 ios-app-group

9
推荐指数
1
解决办法
4490
查看次数

无论如何缩短if(i == x || i == y)?

我试图缩短我的代码,来自:

if(i== x || i == y || i == z )
Run Code Online (Sandbox Code Playgroud)

if (i == ( x || y || z ))
Run Code Online (Sandbox Code Playgroud)

我知道这种方式是错误的,因为我在日志中得到了错误的信息.

但是,有没有什么方法可以缩短Objective-C中的代码?

logic if-statement objective-c conditional-statements ios

4
推荐指数
3
解决办法
305
查看次数