Awesome
react-native-userdefaults-ios
React Native Module for NSUserDefaults
This library is especially helpful for hybrid apps that already make use of [NSUserDefaults standardUserDefaults]
and would like to read or write to it from within their React components.
Add it to your project
- Run
npm install react-native-userdefaults-ios --save
- Open your project in XCode, right click on
Libraries
and clickAdd Files to "Your Project Name"
. - Select the
RNUserDefaultsIOS.xcodeproj
file in thenode_modules/react-native-userdefaults-ios
folder and clickAdd
- In the Xcode Project Navigator, select your project and add
libRNUserDefaultsIOS.a
from theLibraries/RNUserDefaultsIOS.xcodeproj/Products
folder toBuild Phases -> Link Binary With Libraries
. - Follow the implementation example below...
Example
// Require the library...
var UserDefaults = require('react-native-userdefaults-ios');
Writing to standardUserDefaults
//Set an Array...
var arr = ['1', '2', '3'];
UserDefaults.setArrayForKey(arr, 'keyForMyArray')
.then(result => {
console.log(result);
});
// Set a String...
UserDefaults.setStringForKey('myString', 'keyForMyString')
.then(result => {
console.log(result);
});
//Set an Object...
var obj = {
name: 'Dave'
};
UserDefaults.setObjectForKey(obj, 'keyForMyObject')
.then(result => {
console.log(result);
});
//Set a boolean value...
UserDefaults.setBoolForKey(true, 'keyForMyBool')
.then(result => {
console.log(result);
});
//Remove an item (works for any type)...
UserDefaults.removeItemForKey('keyOfItemToRemove')
.then(result => {
console.log(result);
});
Reading from standardUserDefaults
// Get an array for a given key...
UserDefaults.arrayForKey('keyForMyArray')
.then(array => {
//Do something with the returned array...
array.forEach(item => {
console.log(item);
});
});
// Get a string for a given key...
UserDefaults.stringForKey('keyForMyString')
.then(string => {
//Do something with the returned string...
console.log(string);
});
// Get an object for a given key...
UserDefaults.objectForKey('keyForMyObject')
.then(obj => {
//Do something with the returned object...
console.log(obj);
});
// Get a boolean value for a given key...
UserDefaults.boolForKey('keyForMyBool')
.then(bool => {
//Do something with the returned boolean value...
console.log(bool);
});
Todos for 1.0 release
- Implement
dataForKey:
- Implement
stringArrayForKey:
- Implement
setFloat:forKey:
- Implement
floatForKey:
- Implement
setInteger:forKey:
- Implement
integerForKey:
- Implement
setDouble:forKey:
- Implement
doubleForKey:
- Implement
setURL:forKey:
- Implement
URLForKey:
- Implement
NSUserDefaultsDidChangeNotification
Todos for 0.1.0 release - DONE!
- Implement
arrayForKey:
- Implement
stringForKey:
- Implement
setObject:forKey:
- Implement
objectForKey:
- Implement
removeObjectForKey:
- Implement
dictionaryForKey:
Note: This was taken care of withobjectForKey
since in JS an Object is a Dictionary in Obj-C - Implement
setBool:forKey:
- Implement
boolForKey: