public static IStateBundle ToStateBundle(this NSDictionary bundle)
        {
            var state = new StateBundle();
            var formatter = new BinaryFormatter();

            if (bundle != null)
            {
                foreach (var key in bundle.Keys)
                {
                    var byteArray = bundle.ObjectForKey(key) as NSArray;
                    if (byteArray != null)
                    {
                        var bytes = new List<byte>();

                        for (nuint i = 0; i < byteArray.Count; i++)
                        {
                            var v = byteArray.GetItem<NSNumber>(i);
                            bytes.Add(v.ByteValue);
                        }

                        using (var stream = new MemoryStream(bytes.ToArray()))
                        {
                            var value = formatter.Deserialize(stream);
                            state.Data[key.ToString()] = value;
                        }
                    }
                }
            }

            return state;
        }
        public static IStateBundle ToStateBundle(this Bundle bundle)
        {
            var state = new StateBundle();
            var formatter = new BinaryFormatter();

            if (bundle != null)
            {
                foreach (var key in bundle.KeySet())
                {
                    var bytes = bundle.GetByteArray(key);
                    if (bytes != null)
                    {
                        using (var stream = new MemoryStream(bytes))
                        {
                            var value = formatter.Deserialize(stream);
                            state.Data[key] = value;
                        }
                    }
                }
            }

            return state;
        }