首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Objective-C NSUserDefaults不为特定键保存NSMutableArray

Objective-C中的NSUserDefaults是一个用于存储应用程序的偏好设置的类。它提供了一种简单的方式来保存和读取数据,包括基本数据类型、对象和集合。

对于特定键保存NSMutableArray,可以按照以下步骤进行操作:

  1. 创建一个NSMutableArray对象,并添加需要保存的数据。
代码语言:txt
复制
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"item1", @"item2", @"item3", nil];
  1. 使用NSUserDefaults的standardUserDefaults方法获取NSUserDefaults的实例。
代码语言:txt
复制
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  1. 使用setObject:forKey:方法将NSMutableArray对象保存到NSUserDefaults中。
代码语言:txt
复制
[defaults setObject:array forKey:@"myArray"];
  1. 调用synchronize方法将数据同步到磁盘,确保数据被保存。
代码语言:txt
复制
[defaults synchronize];

这样,NSMutableArray对象就被保存到NSUserDefaults中,并与特定的键"myArray"关联起来。

在其他地方需要获取这个NSMutableArray对象时,可以使用以下代码:

代码语言:txt
复制
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *array = [defaults objectForKey:@"myArray"];

这样就可以从NSUserDefaults中获取之前保存的NSMutableArray对象。

NSUserDefaults适用于保存应用程序的偏好设置、用户配置信息、临时数据等。它的优势包括简单易用、数据持久化、跨应用程序共享等。

对于腾讯云相关产品,可以参考以下链接了解更多信息:

以上是腾讯云的一些相关产品,可以根据具体需求选择适合的产品进行开发和部署。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS开发——数据持久化之归档

在此之前,一些轻量级的数据类型我一般比较喜欢用NSUserDefaults来存储,因为首先这是一个单例,而且使用简便,数据之间传递自由,所以很适合用来保存简单的数据。...而昨天我在实际工作中,有一个数组NSMutableArray需要存储,但是使用时,报了一个错误 reason: '*** -[NSUserDefaults setObject:forKey:]: attempt...那么对自定义对象的归档显得重要的多,因为很多时候我们都要在程序退出时保存数据,再程序恢复时重新加载,那么,归档便是一个好的选择。 接下来我们来讲讲NSKeyedArchiver的使用。...]synchronize]; 三行代码,就把NSKeyedArchiver和NSUserDefaults结合来存储数据了。...; NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]; _dataSource = [NSMutableArray

61510

iOS学习——iOS常用的存储方式

2.1 plist文件(属性列表) plist文件是将某些特定的类,通过XML文件的方式保存在目录中。...可以被序列化的类型只有如下几种: NSArray NSMutableArray NSDictionary NSMutableDictionary NSData NSMutableData NSString...此外,NSUserDefaults 创建的数据其实也是一个plist文件,其中数据保存格式是键值对形式,即NSDictionary形式,该文件存放在沙盒 Library/Preferences/ 目录下...使用方法 //1.获得NSUserDefaults文件 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; //2...因为SQLite的接口使用C写的,而且Objective-C是C的超集所以可以直接在项目中使用SQLite。   关于SQLite的详细使用方法详见:iOS开发数据库篇—SQLite的应用

3K100
  • iOS - 老生常谈内存管理(三):ARC 面世

    struct Data { NSMutableArray *mArray; }; error:ARC forbids Objective-C objs in struct or unions NSMutableArray...如果一直不调用block,对象就会一直保存在内存中,造成内存泄漏。...所以void *指针建议立即使用,如果我们要保存这个void *指针留着以后使用,那么建议使用__bridge_retain。...以下给出几个 “使用__bridge将void *类型转换为id类型” 的示例代码,要注意转换后还是由开发者手动管理内存,所以即使离开作用域,该对象还保存在内存中。...建议: 将Foundation对象转为Core Foundation对象时,如果我们立即使用该Core Foundation对象,使用__bridge;如果我们想保存着以后使用,使用__bridge_retained

    2.1K10

    Objective-C高级编程》温故知新之自动引用计数

    本文"鸟瞰图" 前言 很久前看了《Objective-C高级编程 iOS与OS X多线程和内存管理》这本书,但当时看起来晦涩难懂。最近利用下班时间重读了一遍,觉得还是得记录一下。...("NSMutableArray"), sel_registerName("alloc")), sel_registerName("init")); return obj2; } Objective-C...比如NSMutableArray类中的 array类方法 id obj = [NSMutableArray array]; //取得的对象存在,但自己不持有对象 使用retain可持有对象 [obj...image.png alloc类方法用struct obj_layout 中的 retain 整数来保存引用计数,并将其写入内存头部,该对象内存块全部置0后返回。...如图 GNUstep将引用计数保存在对象占用内存块头部的变量中,而苹果的实现,则是保存在引用计数表中的记录中。

    62850

    译文: 低调奢华有内涵的「Runtime」

    换言之,虽然Swift很明显会扮演越来越重要的角色,但是Objective-C还是会在未来几年保持影响力。这门古老的语言,还是有一些有用的窍门不为人熟知。...下面引用一些Objective-C Runtime的定义——因为我相信自己是讲不清楚的: 「Objective-C可以从『编译时』、『链接时』再到『运行时』,hold住尽可能多的决策。...下面就是一个很方便的方法: +(NSArray*)objcruntime_getMethodNames { Class class = [self class]; NSMutableArray...* names = [NSMutableArray new]; uint count; Method* methods = class_copyMethodList(class, &count...这种情况下,你就可以用associated objects添加一个用于保存图片NSURL的属性,类似如下: NSURL* imageURL = [NSURL URLWithString:@"https:

    97140

    Objective-C属性(property)的特性(attribute)

    现在大伙儿慢慢转向苹果的新开发语言Swift,似乎亦不必花太多时间在Objective-C上。...主要基于三个原因(参考:Please explain Getter and Setters in Objective C): 可以在getter和setter中添加额外的代码,实现特定的目的。...比如赋值前(set)需要实现一些特定的内部计算,或者更新状态,缓存数据等等。 KVC和KVO都是基于此实现的。 在非ARC时代,可以在在getter和setter中进行内存管理。...因此,写getter和setter,可算是Objective-C中「约定俗成」的做法了。...nonnull:对象「不可为空」 null_unspecified:「未指定」 null_resettable:稍有点难理解,就是调用setter去reset属性时,可以传入nil,但是getter返回值,不为

    1.9K30

    GB代码规范1.0

    要先创建 因为我们用到NSUserDefaults无非是保存和读取 事先的创建一个对象 可以精简代码 当执行方法很多 用变量替换 建议的写法 NSUserDefaults *userDefault =...setObject:@() forKey:startLoadString] 不建议的写法 NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults...Description方便调试 这个不推荐自己手写 可以使用Xcode插件自动生成 属性越多会加重手写代码的长度 尽可能使用不可变的对象 对于OC存在很多可变的对象 比如NSMutableString NSMutableArray...NSMutableDictionary等等 对于一些不允许改变的直接使用不可变对象 可以节省对象开支 还可以防止别人修改数据造成bug 建议的写法 NSArray *sexList = @[@"男",@"女"]; 不建议的写法 NSMutableArray...*sexList = [NSMutableArray arrayWithArray:@[@"男",@"女"]] 如果建议的使用Block和代理 我觉得代理可以用在写控件需要数据源赋值 和一些事件回调的时候使用

    1.2K20

    【IOS】IOS开发问题解决方法索引(一)

    Objective-C 这段代码有三个致命问题:1、内存泄露;2、错误释放;3、造成EXC_BAD_ACCESS 错误。...PSTextFieldSpecifier 设置项目Type为PSTextFieldSpecifier是指示该项目是一个特定的使用偏好字段类型。...其它项目的说明: PSSliderSpecifier 设置项目Type为PSSliderSpecifier是指示该项目是一个特定的使用偏好滑块类型。...其它项目的说明 8.4 读取设置 读取应用程序中设置 我们使用NSUserDefaults类读取用户设置,通常使用 NSUserDefaults* defaults = [NSUserDefaultsstandardUserDefaults...这个过程就是当应用程序将要进入后台前(按下Home)触发通知,然后执行applicationWillResignActive:notification方法完成一些操作。

    87840

    Objective-C中的集合类

    下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习...在Objective-C中的集合类中主要包括不可变的数组--NSArray,  可变的数组--NSMutableArray,   不可变的字典--NSDictionary,    可变的字典--NSMutableDictionary...demo: 1 2 3 4 //NSMutableArray的便利初始化 NSMutableArray *array3 = [[NSMutableArray alloc] initWithCapacity...:3]; //NSMutableArray的便利构造器 NSMutableArray *array4 = [NSMutableArray arrayWithCapacity:3];             ...mulDictionary setObject:@"value3" forKey:@"key3"]; [mulDictionary setObject:@"value4" forKey:@"key4"]; //通过删除值

    1.1K70

    iOS 底层原理探索 之 KVC 我愿称之它为魔法...

    Objective-C 中,您还可以直接访问属性的底层实例变量。以任何这些方式访问对象属性都很简单,但需要调用特定于属性的方法或变量名称。随着属性列表的增长或变化,访问这些属性的代码也必须如此。...2.KVC赋值取值的过程 NSKeyValueCoding协议 的默认实现NSObject使用一组明确定义的规则将基于的访问器调用映射到对象的底层属性。...代理对象随后将任何NSArray接收到的一些组合的消息countOf,objectInAtIndex:和AtIndexes: 消息给-值编码创建它兼容的对象。...默认情况下,这会引发异常,但 的子类NSObject可能会提供特定的行为。...默认情况下,这会引发异常,但 的子类NSObject可能会提供特定的行为。

    42220

    Objective C (iOS) for Qt C++ Developers(iOS开发,Qt开发人员需要了解什么?)

    Qt/C++开发人员眼中的Obj-C 对于我们第一次自己定义iOS应用来说,对于来自Qt/C++开发人员来说,我不得不学习Objective-C...您须要使用他们可变泛型改变他们(比如NSMutableArray)。 假设你想存储原始类型,您须要使用NSNumber、NSValue等包装。...NSUserDefaults是一个非常好的方式来存储和载入应用程序设置(与QSettings相类似)。 不幸的是Obj-c没有类似于于QtXmlPatterns的相关对象。...在得到由OS特定事件发生时调用每一个视图控制器类似viewWillAppear等方法。...您使用“outlets”链接与他们的同一在界面构建器UI文件里控件的实例(比如UIButton、UILabel),用CTRL组合进行拖拽.

    94610

    IOS开发问题索引(七)

    yourFriendlyNSString ; 11 【文件目录】iOS Documents、Library和tmp的作用 1.Documents: 只有用户生成的文件、其他数据及其他程序不能重新创建的文件,应该保存在...2.Library: 可以重新下载或者重新生成的数据应该保存在 /Library/Caches 目录下面。...举个例子,比如杂志、新闻、地图应用使用的数据库缓存文件和可下载内容应该保存到这个文件夹。 3.tmp: 只是临时使用的数据应该保存到 /tmp 文件夹。...比如存入再读出一个字符串到NSUserDefaults: NSString *string = [NSString stringWithString @"hahaha"]; NSUserDefaults...错误显示:direct access to Objective-C's isa is deprecated in favorof object_getClass() 看资料说是 使用 array

    1.1K40

    2019最新iOS面试题及答案

    答:KVC: – 值编码是一种间接访问对象的属性使用字符串来标识属性,而不是通过调用存取方法,直接或通过实例变量访问的机制。很多情况下可以简化程序代码。apple文档其实给了一个很好的例子。...NSArray是线程安全的,NSMutableArray不是线程安全的,多线程使用到NSMutableArray需要注意。 36....答:有以下几种保存机制: 1).通过web服务,保存在服务器上 2).通过NSCoder固化机制,将对象保存在文件中 3).通过SQlite或CoreData保存在文件数据库中 45....将一段数据通过特定的格式,格式化到一个字符串缓冲区中去。sprintf格式化的函数的长度不可控,有可能格式化后的字符串会超出缓冲区的大小,造成溢出。...Nsuserdefaults保存的文件在tmp文件夹里。 95. 在一个对象的方法里面:self. name = @"object";和 _name = @"object" 有什么不同吗?

    2.3K20
    领券