Objective-C 获取可为空 bool 的方法是什么?

发布于 2024-09-14 07:42:38 字数 131 浏览 4 评论 0原文

我应该如何获取一个可以在 Objective-C 中分配 true、false 和 nil 的 bool 值? Objective-C 这样做的方式是什么?很像 C# 的 Nullable。

我希望能够使用 nil 值来表示未定义。

How should I go about getting a bool value that I can assign true, false and nil to in Objective-C? What is the Objective-C way of doing this? Much like C#'s Nullable.

I'm looking to be able to use the nil value to represent undefined.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

°如果伤别离去 2024-09-21 07:42:38

NSNumber 实例可能会有所帮助。例如:

NSNumber *yesNoOrNil;

yesNoOrNil = [NSNumber numberWithBool:YES]; // set to YES
yesNoOrNil = [NSNumber numberWithBool:NO];  // set to NO
yesNoOrNil = nil; // not set to YES or NO

为了确定其值:

if (yesNoOrNil == nil)
{
    NSLog (@"Value is missing!");
}
else if ([yesNoOrNil boolValue] == YES)
{
    NSLog (@"Value is YES");
}
else if ([yesNoOrNil boolValue] == NO)
{
    NSLog (@"Value is NO");
}

在 10.3 之后的所有 Mac OS X 平台和所有 iPhone OS 平台上, -[NSNumber boolValue] 方法保证返回“是”或“否”。

An NSNumber instance might help. For example:

NSNumber *yesNoOrNil;

yesNoOrNil = [NSNumber numberWithBool:YES]; // set to YES
yesNoOrNil = [NSNumber numberWithBool:NO];  // set to NO
yesNoOrNil = nil; // not set to YES or NO

In order to determine its value:

if (yesNoOrNil == nil)
{
    NSLog (@"Value is missing!");
}
else if ([yesNoOrNil boolValue] == YES)
{
    NSLog (@"Value is YES");
}
else if ([yesNoOrNil boolValue] == NO)
{
    NSLog (@"Value is NO");
}

On all Mac OS X platforms after 10.3 and all iPhone OS platforms, the -[NSNumber boolValue] method is guaranteed to return YES or NO.

缺⑴份安定 2024-09-21 07:42:38

我认为您需要为此使用一些类,例如将 bool 包装到 NSNumber 对象。

I think you will need to use some class for that, e.g. wrap bool to NSNumber object.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文