Objective C 布尔数组

Objective C Boolean Array(Objective C 布尔数组)
本文介绍了Objective C 布尔数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在objective-c 中使用一个布尔数组.我已经基本设置好了,但是编译器会在以下语句中抛出警告:

I need to utilize an array of booleans in objective-c. I've got it mostly set up, but the compiler throws a warning at the following statement:

[updated_users replaceObjectAtIndex:index withObject:YES];

这是,我敢肯定,因为 YES 根本就不是一个对象;这是一个原始的.无论如何,我需要这样做,并且非常感谢有关如何完成它的建议.

This is, I'm sure, because YES is simply not an object; it's a primitive. Regardless, I need to do this, and would greatly appreciate advice on how to accomplish it.

谢谢.

推荐答案

没错,就是这样:NS* 容器只能存储 Objective-C 对象,不能存储原始类型.

Yep, that's exactly what it is: the NS* containers can only store objective-C objects, not primitive types.

你应该能够通过将它包装在一个 NSNumber 中来完成你想要的:

You should be able to accomplish what you want by wrapping it up in an NSNumber:

[updated_users replaceObjectAtIndex:index withObject:[NSNumber numberWithBool:YES]]

或使用 @(YES)BOOL 包装在 NSNumber

or by using @(YES) which wraps a BOOL in an NSNumber

[updated_users replaceObjectAtIndex:index withObject:@(YES)]]

然后就可以拉出boolValue了:

You can then pull out the boolValue:

BOOL mine = [[updated_users objectAtIndex:index] boolValue];

这篇关于Objective C 布尔数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Why local notification is not firing for UNCalendarNotificationTrigger(为什么没有为UNCalendarNotificationTrigger触发本地通知)
iOS VoiceOver functionality changes with Bundle Identifier(IOS画外音功能随捆绑包标识符而变化)
tabbar middle tab out of tabbar corner(选项卡栏中间的选项卡角外)
Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
Dropbox Files.download does not start when number of files in folder is gt; 1000(当文件夹中的文件数为1000时,Dropbox Files.Download不会启动)
How to target newer versions in .gitlab-ci.yml using auto devops (java 11 instead of 8 and Android 31 instead of 29)(如何在.gitlab-ci.yml中使用自动开发工具(Java 11而不是8,Android 31而不是29)瞄准较新的版本)