Tip of App Groups

* Available for iOS 7

* Group path is different in iOS 7 and 8

ios7:file:///private/var/mobile/Containers/Shared/AppGroup/xxx

ios8:file:///private/var/mobile/Containers/xxx

* Userdeafults can't share in iOS7, but it won't raise any error.

* Enable App Groups will add *.entitlements in proj

* Delete all app relate to the App Groups, system will delete the dir in AppGroup either, next time install the app will use another UUID

- (IBAction)doSet:(id)sender{
    NSUserDefaults *def = [[NSUserDefaults alloc] initWithSuiteName:@"group.myappgroup"];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *s = [dateFormatter stringFromDate:[NSDate date]];
    NSLog(@"set value:%@",s);
    [def setValue:s forKey:@"dt"];
    [def synchronize];
}

- (IBAction)doGet:(id)sender{
    NSUserDefaults *def = [[NSUserDefaults alloc] initWithSuiteName:@"group.myappgroup"];
    NSLog(@"%@", [def valueForKey:@"dt"]);
    self.title = [def valueForKey:@"dt"];
}

- (IBAction)doWrite:(id)sender{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *s = [dateFormatter stringFromDate:[NSDate date]];
    NSURL *url = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.myappgroup"];
    url = [url URLByAppendingPathComponent:@"a.dat"];
    NSLog(@"%@",url.absoluteString);
    NSError *err = NULL;
    [s writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:&err];
    if(err){
        NSLog(@"err:%@",err.description);
    }
}

- (IBAction)doReadFile:(id)sender{
    NSURL *url = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.myappgroup"];
    url = [url URLByAppendingPathComponent:@"a.dat"];
    NSLog(@"%@",url.absoluteString);
    NSError *err = NULL;
    NSString *s = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&err];
    if(!err){
        NSLog(@"%@",s);
        self.title = s;
    }else{
        NSLog(@"err:%@",err.description);
    }
}

相关推荐