React Native Module for NSUserDefaults
Objective-C JavaScript Ruby
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
RNUserDefaultsIOS.xcodeproj
RNUserDefaultsIOS.xcworkspace
RNUserDefaultsIOS
RNUserDefaultsIOSTests
.gitignore
.jshintrc
.travis.yml
Podfile
Podfile.lock
README.md
RNUserDefaultsIOS.js
package.json

README.md

react-native-userdefaults-ios Build Status

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.

NPM

Add it to your project

  1. Run npm install react-native-userdefaults-ios --save
  2. Open your project in XCode, right click on Libraries and click Add Files to "Your Project Name".
  3. Select the RNUserDefaultsIOS.xcodeproj file in the node_modules/react-native-userdefaults-ios folder and click Add
  4. In the Xcode Project Navigator, select your project and add libRNUserDefaultsIOS.a from the Libraries/RNUserDefaultsIOS.xcodeproj/Products folder to Build Phases -> Link Binary With Libraries.
  5. 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 with objectForKey since in JS an Object is a Dictionary in Obj-C
  • Implement setBool:forKey:
  • Implement boolForKey: