[Interest] Qt iOS / App Groups / NSUserDefaults initWithSuiteName / Not persisting
Nuno Santos
nunosantos at imaginando.pt
Wed Nov 14 12:24:06 CET 2018
Hi,
I’m trying to persist data in a App Group on Qt iOS app to share data between a standalone app and app extension.
I have been reading on how to do it and apparently is dead simple -> https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW6
The problem is that it is not persisting data….
I’m starting to question the model I’m following in terms of code. I have my Settings manager in C++. What I have done was to create a SettingsCocoa.mm file that does what is below.
In a app session, the value is persisted but as soon as I start the app again, the value is null.
As anyone experienced similar issues before? Any ideas would be highly appreciated.
Thanks in advance.
Best regards,
Nuno
#include "Settings.h"
#import <Foundation/Foundation.h>
#include <QDebug>
static NSUserDefaults *defaults = nil;
QVariant Settings::sharedKey(QString key, const QVariant &defaultValue) const
{
if (defaults==nil)
defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.acme.app"];
NSObject *value = [defaults valueForKey:key.toNSString()];
NSLog(@"get object: %@", value);
}
void Settings::setSharedKey(QString key, QVariant value)
{
if (defaults==nil)
defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.acme.app"];
NSObject *object = [ISettingsManagerCocoaHelper variantToNSObject:value];
NSLog(@"set object: %@", object);
sharedKey(key, value);
[defaults synchronize];
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20181114/86813abb/attachment.html>
More information about the Interest
mailing list