private void SetItem(string key, object value) { if (value == null) { if (IsRoaming) { _store.Remove(key); } else { _defaults.RemoveObject(key); } } else { TypeCode code = Type.GetTypeCode(value.GetType()); switch (code) { case TypeCode.String: if (IsRoaming) { _store.SetString(key, value.ToString()); } else { _defaults.SetString(value.ToString(), key); } break; case TypeCode.Int32: if (IsRoaming) { _store.SetLong(key, (long)value); } else { _defaults.SetInt((int)value, key); } break; case TypeCode.Double: if (IsRoaming) { _store.SetDouble(key, (double)value); } else { _defaults.SetDouble((double)value, key); } break; case TypeCode.Single: if (IsRoaming) { _store.SetDouble(key, (double)value); } else { _defaults.SetFloat((float)value, key); } break; case TypeCode.Boolean: if (IsRoaming) { _store.SetBool(key, (bool)value); } else { _defaults.SetBool((bool)value, key); } break; default: if (IsRoaming) { _store.SetValueForKey(IOSTypeConverter.ConvertToNSObject(value), new NSString(key)); } else { _defaults.SetValueForKey(IOSTypeConverter.ConvertToNSObject(value), new NSString(key)); } break; } } }
private void SetItem(string key, object value) { if (value == null) { if (IsRoaming) { _store.Remove(key); } else { _defaults.RemoveObject(key); } } else { TypeCode code = Type.GetTypeCode(value.GetType()); switch (code) { case TypeCode.String: if (IsRoaming) { _store.SetString(key, value.ToString()); } else { _defaults.SetString(value.ToString(), key); } break; case TypeCode.Int64: if (IsRoaming) { _store.SetLong(key, (long)value); } else { _defaults.SetInt((nint)value, key); } break; case TypeCode.Int32: if (IsRoaming) { _store.SetLong(key, (long)value); } else { _defaults.SetInt((int)value, key); } break; case TypeCode.Double: if (IsRoaming) { _store.SetDouble(key, (double)value); } else { _defaults.SetDouble((double)value, key); } break; case TypeCode.Single: if (IsRoaming) { _store.SetDouble(key, (double)value); } else { _defaults.SetFloat((float)value, key); } break; case TypeCode.Boolean: if (IsRoaming) { _store.SetBool(key, (bool)value); } else { _defaults.SetBool((bool)value, key); } break; default: if (IsRoaming) { _store[new NSString(key)] = IOSTypeConverter.ConvertToNSObject(value); } else { _defaults[key] = IOSTypeConverter.ConvertToNSObject(value); } break; } } if (_locality == ApplicationDataLocality.SharedLocal) { _defaults.Synchronize(); } }