app中数据的共享使用

本文探讨了如何在iOS应用程序中利用App Groups特性实现不同组件间的数据共享,通过TARGETS设置和配置,确保App Extension与主应用能共享数据。
摘要由CSDN通过智能技术生成
App Groups
 
这是iOS8新开放的功能,在OS X上早就可用了。它主要用于同一group下的app共享同一份读写空间,以实现数据共享。
 
extension和containing app共同读写一份数据是很合理的需求,比如系统的股市应用,widget和app中都需要展示几个公司的股票数据,这就可以通过App Groups实现。
 
1.1 功能开启
 
为了便于后续操作,请先确保你的开发者账号在Xcode上处于登录状态。
 
在app中开启
App Groups位于:
 
 
 
  1. TARGETS-->AppExtensionDemo-->Capabilities-->App Groups 
找到以后,将App Groups右上角的开关打开,然后选择添加groups,比如我的是group.wangzz,当然这是为了测试随便起得名字,正规点得命名规则应该是:group.com.company.app。
 
添加成功以后如下图所示:
1.2 在extension中开启
我创建的是widget,target名称为TodayExtension,对应的App Groups位于:
 
 
 
  1. TARGETS-->TodayExtension-->Capabilities-->App Groups 
开启方式和app中一样,需要注意的是必须保证这里地App Groups名称和app中的相同,即为group.wangzz。
 
二、extension和containing app数据共享
 
App Groups给我们提供了同一group内app可以共同读写的区域,可以通过以下方式实现数据共享:
 
2.1 通过NSUserDefaults共享数据
 
存数据
通过以下方式向NSUserDefaults中保存数据:
 
 
 
  1. - (void)saveTextByNSUserDefaults 
  2.     NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.wangzz"]; 
  3.     [shared setObject:_textField.text forKey:@"wangzz"]; 
在Matlab App Designer,setappdata和getappdata函数通常用于在应用程序的不同部分之间共享数据,特别是当你需要存储用户界面组件或应用程序级别的属性时。这些函数允许你将数据附加到特定对象上,而不直接存储在这些对象的属性。这样做的好处是数据不会被序列化,同时可以通过指定的对象轻松访问。 setappdata函数用于将数据与指定的对象关联,其基本语法如下: ```matlab setappdata(obj, key, value) ``` 这里,`obj`是对象的句柄(通常是UI控件或整个应用程序对象),`key`是一个字符串标签,用于后续检索数据,而`value`是你想要存储的数据。 getappdata函数用于检索之前使用setappdata存储的数据,其基本语法如下: ```matlab value = getappdata(obj, key) ``` 如果指定的`key`不存在,则返回空矩阵`[]`。 下面是一个简单的例子来展示如何在Matlab App Designer使用setappdata和getappdata: 1. 假设你有一个名为`myUIComponent`的UI控件,你想保存一个数值`myData`与之关联。 2. 使用`setappdata`函数将数据与控件关联起来。 ```matlab setappdata(myUIComponent, 'myKey', myData); ``` 3. 在需要的时候,你可以通过`getappdata`函数检索存储的数据。 ```matlab retrievedData = getappdata(myUIComponent, 'myKey'); ``` 4. 当你不再需要这些数据时,可以使用`rmappdata`函数将数据从对象移除。 ```matlab rmappdata(myUIComponent, 'myKey'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值