iOS 设置束

GBT 27930-2015/2023国标充电协议A类CAN报文ID说明 国标充电CAN的ID,仅供学习参考。 阅读详情

8.1 应用程序设置概念

8.2 创建设置束

8.3 设置项目种类

8.4 读取设置

 

8.1 应用程序设置概念

应用程序设置(Application Settings):在iOS和Mac OS很多软件中都有使用偏好(preferences),例如,在iOS中我们设置WiFi、运用商和壁纸等等。

wps_clip_image-22225

8.2 创建设置束

创建工程

wps_clip_image-10824

Settings Bundle(设置束)

一个应用程序的使用偏好,是存储在一个Root.list的XML文件中的,在这个文件中是与Settings Bundle关联起来的。可以在Root.list中指定设置项目的类型,可以有常规字段类型、划块、开关和子视图类型等等。

创建一个设置束

wps_clip_image-2213

wps_clip_image-31479

上图中在Resource文件夹下添加设置束文件Settings.bundle(默认名称)。展开Settings.bundle文件夹:

Root.plist图标 是设置属性的属性列表

en.lproj文件夹 是本地化应用程序时使用的

Root.plist的PreferenceSpecifiers节点

wps_clip_image-29875

wps_clip_image-27285wps_clip_image-8222

8.3 设置项目种类

生成的设置束文件设置项目

从上面的运行的应用程序看,我们没有编写任何一行代码系统就已经帮我们创建好一些设置项目了。

wps_clip_image-14500

PSGroupSpecifier

设置项目Type为PSGroupSpecifier用于指示该项目是一个新分组的开始,其后的每个项目都将是此分组的一部分,直到一个Type值为PSGroupSpecifier的项目之前。

在本例子中我们还要设置Title为Group,有多个Group时候Title不能重复。

PSTextFieldSpecifier

设置项目Type为PSTextFieldSpecifier是指示该项目是一个特定的使用偏好字段类型。其它项目的说明:

wps_clip_image-1955

PSToggleSwitchSpecifier

设置项目Type为PSToggleSwitchSpecifier是指示该项目是一个特定的使用偏好开关类型。其它项目的说明:

wps_clip_image-17703

PSSliderSpecifier

设置项目Type为PSSliderSpecifier是指示该项目是一个特定的使用偏好滑块类型。其它项目的说明

wps_clip_image-28803

为滑块添加最大最小值图片

wps_clip_image-22627

Show Package Contents来访问束的内容。这将打开一个新的窗口。将图标文件复制到此文件夹中。这样束就能找到这两个图标文件了。

添加最大最小值图片文件结构

wps_clip_image-25049

具体往束里设置图片:

wps_clip_image-17762

运行结果

wps_clip_image-4470

添加子设置视图

wps_clip_image-9692

添加完子视图,运行程序:

wps_clip_image-10421

8.4 读取设置

读取应用程序中设置

我们使用NSUserDefaults类读取用户设置,通常使用

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];

NSUserDefaults获得值方法有:

arrayForKey:  boolForKey:  dataForKey:

dictionaryForKey:  floatForKey:  integerForKey:

objectForKey: stringArrayForKey:  stringForKey:

wps_clip_image-8763

MainViewController.h

wps_clip_image-10475

MainViewController.m

wps_clip_image-22228

FlipsideViewController.h

wps_clip_image-21572

FlipsideViewController.m

wps_clip_image-20077

wps_clip_image-22775

运行

wps_clip_image-7421


下面可以处理设置中触发的相关事件

一.如何设置和获取数据

  1.               NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];  
  2.               NSNumber *defaultCalibrationOffset = [NSNumber numberWithFloat:2.0];  
  3.               //程序注册数据  
  4.               NSDictionary *resourceDict = [NSDictionary dictionaryWithObject:defaultCalibrationOffset forKey:@"BubbleLevelCalibrationOffsetKey"];  
  5. [defaults registerDefaults:resourceDict];  
  6.               //从程序注册的数据中获取数据  
  7.               NSNumber *s2 = [defaults objectForKey:@"BubbleLevelCalibrationOffsetKey"];  
  8.               NSLog(@"%@",s2);  
  9.               //从Setting Application中获取数据  
  10.               BOOL s = [defaults boolForKey:@"play_sounds_preference"];  
  11.               NSLog(@"%@",[NSNumber numberWithBool:s]);  

二.Setting设置

1.创建Setting.bundle

创建关联的plist需要注意的是自己在Finder将Setting.bundle右键,显示包内容,然后自己将Sound.plist拖进去

所有主文件都是Root.plist,详细如下:


Sound.plist


ChildPane就是一个外联的资源,只要名字对应就行了,此外尽量勾选Raw Keys/Values选项,因为这样显示出的参数才比较详尽,否则会出现混淆,比如Key就会对应Identifier,这个就比较晕了,其实所有资源在程序里对应的key,就是在item里定义的Key

注意打勾


三.setting修改完毕后通知程序

有2种通知可以触发回调程序

1.NSUserDefaultsDidChangeNotification

绑定事件

  1. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notifys:) name:NSUserDefaultsDidChangeNotification object:nil];  
触发方法
  1. - (void)notifys:(NSNotification *)notification {    
  2.         NSLog(@"%@",notification);  
  3. }  
该方法只有用户在相对应setting界面修改了数值,才会触发,如果什么都没有修改是不会触发该通知的

2.UIApplicationWillEnterForegroundNotification

绑定事件

  1. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(applicationWillEnterForegrounds:) name:UIApplicationWillEnterForegroundNotification object:nil];  
触发方法
  1. - (void)applicationWillEnterForegrounds:(NSNotification *)notification {    
  2.         NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];  
  3.         //强制保存数据  
  4.         [defaults synchronize];  
  5.         //数据重新获取,并且重新调整界面  
  6.         //⋯⋯  
  7. }  
ps:值得一提的是-(void)synchronize方法可以强制将本次NSUserDefaults数据持久化保存,虽然这个操作相对比较消耗时间,但是对于每次用户操作后保存还是能够接受的。

参考文档

Setting Application Schema Reference

Preferences and Setting Programming Guide


 

nicegui 可视化扩展库 总体来说,这段代码使用nicegui库创建了一个具有一些基本UI元素的界面,并使用扩展库来实现更多的布局功能。这段代码使用了nicegui库创建了一个UI界面。函数导入了一个扩展库,用于实现更多的布局功能。然后又使用了一个行布局,并添加了两个按钮(在UI界面中,使用了一个卡片(在行布局中依次添加了一个标签(在卡片中使用了一个头像(接下来使用了一个行布局(设置了背景颜色为绿色。设置了居中对齐和红色。设置了间距和字体大小。设置了居中对齐和样式。设置了按钮的对齐方式。 阅读详情

相关推荐

OpenEuler内核编译及替换

一、内核源码下载 在gitee上下载OpenEuler内核源码 下载地址 选择需要的内核版本源码压缩包进行下载 二、内核编译 1.解压缩 将下载好的源码进行解压 tar xvf openeuler-kernel-4.19.90-2107.1.0.tar.gz 2.清理源代码树 解压后得到一个名为kernel的内核源码文件夹,进入后执行命令 make mrproper 清理过去内核编译产生的config,第一次编译时可不执行此命令 3.生成内核配置文件.config 先将将系统原配置文件拷贝过来,原

m0_56602092的博客 2万+

使用 Settings.Bundle 进行 iOS 配置管理教程

使用 Settings.Bundle 进行 iOS 配置管理教程 项目介绍 Settings.Bundle 是一个在iOS开发中广泛采用的解决方案,它允许开发者将应用偏好设置集成到系统的“设置”应用里。本教程基于GitHub上的开源项目 rvanlaak/SettingsBundle,旨在指导您如何高效地利用该开源项目来管理和展示应用程序的设置选项。 此开源项目提供了一个基本框架,帮助开发者轻松创...

gitblog_00252的博客 1006

第17篇:深入解析OpenEuler 24.03系统中的逻辑卷管理(LVM)

OpenEuler 24.03系统中的逻辑卷管理(LVM)提供了灵活的存储管理方案,通过在物理存储与文件系统间构建抽象层实现动态资源分配。

专注于系统运维、数据库、DevOps、虚拟化技术、docker、kubernetes、等云原生技术。 1689

设置束(Setting Bundle)的使用

iOS应用程序存储信息的方式很多,但主要有如下3种: 1. 单例类NSUserDefaults:数据通过键/值对的方式存储在NSUserDefaults单例中。 2. 设置束(settings bundle):提供了一个通过iOS应用程序Settings对应用程序进行配置的接口,数据保存在ios系统的设置菜单。 3. 直接访问文件系统:使用文件管理类NSFileManager来实

nogodoss的专栏 7603

MacOS蓝牙连接疑难杂症:从基础排查到高级修复全攻略

本文提供了一份全面的MacOS蓝牙故障排查与修复指南。从基础的菜单栏检查、终端命令诊断,到软/硬重启蓝牙服务、删除配置文件,再到使用blueutil工具、重置NVRAM等高级方法,系统性地解决了蓝牙无法连接、连接不稳定等常见问题。最后还分享了环境干扰排查、预防措施及硬件故障自检方法,帮助用户彻底解决Mac蓝牙连接难题。

weixin_29271263的博客 449

计算数列位置N的值

本文介绍了一个数列生成问题,要求根据输入的两个整数M和N生成特定规则的数列,并输出第N个位置上的数值。数列生成规则为:前M个元素为1到M;后续元素根据前M个元素是否重复来决定计算方式(求和或求差)。文章提供了C++、Java和Python三种语言的实现方案,均包含输入处理、数列初始化、循环计算和结果输出等步骤。各语言实现中均使用集合去重特性判断重复元素,并通过内置函数或自定义方法求取最大值和最小值。该问题主要考察基础编程能力,包括数组/列表操作、最值计算和重复元素判断等基本编程技巧。

面试高手的博客 649

IOS之应用程序设置

8.1 应用程序设置概念 应用程序设置(Application Settings):在iOS和Mac OS很多软件中都有使用偏好(preferences),例如,在iOS中我们设置WiFi、运用商和壁纸等等。 8.2 创建设置束 创建工程 Settings Bundle(设置束) 一个应用程序的使用偏好,是存储在一个Root.list的XML文件中的,在这个文件中是与Settin

IOS研究专栏 1144

FOC 电流采样方案对比(单电阻/双电阻/三电阻)

电流采样的作用 在FOC算法中,电流采样在反馈环节是相当重要的一部分,通常交流三相同步电机在进行坐标变换的时候,需要实时测量相电流,最终通过SVPWM实现电机转子磁场和定子磁场的同步转动,那么这里有三种方案,单电阻采样,双电阻采样,三电阻采样。本文参考ST的单电阻和三电阻采样以及TI的双电阻采样,结合实际中可能需要注意的地方进行总结分析。 单电阻采样 双电阻采样 三电阻采样 ...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 4万+

ios之应用程序设置

应用程序设置(Application Settings):在iOS和Mac OS很多软件中都有使用偏好(preferences),例如,在iOS中我们设置WiFi、运用商和壁纸等等。 创建设置束 创建工程 Settings Bundle(设置束) 一个应用程序的使用偏好,是存储在一个Root.list的XML文件中的,在这个文件中是与Settings Bundle关

成长的脚印 389

【传感器模块项目实战】机器人/无人驾驶常用传感器模型、选型与安装

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!无人车&无人机导航合集本文先对机器人/无人驾驶常用传感器模型、选型与安装做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容分为位置式绝对型编码器增量式编码器打比赛的时候用过欧姆龙的增量式编码器,也用过待编码器的步进电机。【防盗标记–盒子君hzj】增量式编码器正交编码输出信号,用于识别正转和反转,通过微控制器(单片机)的片内外设硬件/软件解码(1)惯性器件-机械陀螺。

qq_35635374的博客 446

【异常】came as a complete surprise to me,IllegalArgumentException: The template string is not valid.

是Spring AI中用于生成提示词(prompt)的一个类。提示词对于与大语言模型交互至关重要,因为它们指导模型生成特定类型的响应。允许开发者创建包含占位符的模板字符串,并通过提供具体的值来填充这些占位符,从而动态地生成个性化的提示词。

奶爸的编程之路,也就一周冷个三天 746

应用程序设置

摘要: 8.1 应用程序设置概念8.2 创建设置束8.3 设置项目种类8.4 读取设置8.1 应用程序设置概念应用程序设置(Application Settings):在iOS和Mac OS很多软件中都有使用偏好(preferences),例如,在iOS中我们设置WiFi、 ... 8.1 应用程序设置概念 8.2 创建设置束 8.3 设置项目种类 8.

起点 1606

关于 ABAP OPEN SQL 的动态 WHERE 条件和 Dynamic Selections

ABAP动态查询技术解析 本文介绍了ABAP中实现灵活数据库查询的动态选择技术,通过FREE_SELECTIONS函数组实现用户自定义查询条件。核心内容包括: 传统固定WHERE条件的局限性,无法满足业务多变需求 Dynamic Selections机制的工作原理,使用FREE_SELECTIONS_INIT初始化、FREE_SELECTIONS_DIALOG交互 完整Demo程序演示如何构建通用表数据浏览器: 用户输入表名后校验权限 调用动态选择函数生成条件 动态拼接WHERE子句执行查询 使用CL_SA

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 670

IOS开发中的数据存储方式

IOS 开发中,一般有如下几种数据存储方式。需要根据具体的业务场景,选择 合适的数据存储方式。 (1)  用户默认设置 – 这种情况通常不需要用户干预,如游戏通关信息,Video 播放记录,或者 App 退出之后,下次进入时,希望恢复到退出时的情况。 (2)  设置束(Settings Bundle)-- 提供了一个通过 iPhone、iPad 的设置

寒流的专栏 880

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ios用户程序设置 Settings应用程序

iPhone和其他ios设备中有一个专用的Settings应用程序。通过Settings应用程序,用户可以输入和更改任何带有设置束(settings bundle)的应用程序首选项。设置束是构建到应用程序中的一组文件,它告诉Settings应用程序,主应用程序希望从用户那里收集到哪些首选项。 在iOS的用户默认设置(User Defaults)机制下,Settings应用程序是一个通用的用户界面...

weixin_30360497的博客 420

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

IOS运行目录说明

我们都是知道IOS是运行在系统的沙盒(sandbox)里的,其它应用程序不能访问你沙盒里的数据,保证了数据的安全性,那么这些目录又有什么区别呢: 1 application bundel:此目录包含你的所有资源文件和可执行文件,这个目录是只读属性 2 Library/Preferences: 此目录存放你程序的设置文件,目录下的文件在与iTunes同步时会被备份 3 Library/

horace7777的专栏 563

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

iphone 如何设置应用程序的配置文件

一般的步骤:1:创建设置束,然后根据属性列表中格式进行输入相应的键值对。再利用NSUserDefault类进行设置 具体代码请见:demo                     ...

weixin_33686714的博客 307

iOS数据持久化的应用场景

iOS 开发中,一般有如下几种数据存储方式。需要根据具体的业务场景,选择 合适的数据存储方式。 1.(1) 用户默认设置 – 这种情况通常不需要用户干预,如游戏通关信息,Video 播放记录,或者 App 退出之后,下次进入时,希望恢复到退出时的情况。 2.(2) 设置束(Settings Bundle)-- 提供了一个通过 iPhone、iPad的设置 (Settings)应用程序进行配

yebanfengdi的博客 711

iPhone开发基础教程笔记(十)--第十章 应用程序设置和用户默认设置

第十章 应用程序设置和用户默认设置 iPhone有一个专用的Settings应用程序,你一定已经使用过多次了。本章将介绍如何在Settings应用程序中添加设置,以及如何从应用程序内部访问这些设置。 苹果公司关于Settings的属于及其底层机制,可以在Application Preferences中找到。 10.1 了解设置束 通过Settings应用程序,用户可以输入和更改任何

心核智慧科技 360度人脸识别开放算法 新零售系统定制 1112

iOS Settings Bundle

iOS Settings Bundle 用于在系统的设置app中,在自己app的设置页面增加与用户交互的入口,称其为应用程序的首选项,可以提前收集用户的某些信息,其本质是使用设置束来实现。 实现 设置App根据我们在应用内部的设置束来显示映红的首选项,如果想为app添加首选项,需要做一下几步 需要添加Setting Bundle设置束,在New File中选择Setting Bundle来添加。 添加Root.plist文件,用来定义根级首选项视图 设置App将根据Root.plist来设置自己app的

onebutterfly 1305

应用程序首选项(application preference)及数据存储

应用程序首选项(application preference)用来存储用户设置,考虑以下案例: a. 假设有一款MP3播放器程序,当用户调节了音量,当下次运行该程序时,可能希望保持上一次调节的音量值。 b. 一款游戏的难易度设置。 c.Twitter等社交程序的用户名和密码设置。 iOS应用程序存储信息的方式很多,但主要有如下3种: 1. 单例类NSUserDefaults:NSUse...

weixin_30339969的博客 297
上一篇: 苹果开发者帐号(Company)申请流程
下一篇: iPhone/iOS Core Animation开发总结(CALayer)
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值