gpt4 book ai didi

ios - 如何在 Objective-C 中延迟设置 BOOL 属性

转载 作者:可可西里 更新时间:2023-11-01 17:16:08 24 4
gpt4 key购买 nike

我需要数据结构上的 BOOL 属性,代表数据库中某个对象的状态,我想延迟设置该属性——也就是说,我不想在需要时对数据库执行 ping 操作,并且只在那个时候设置属性(即,我第一次得到它)。

对于像 NSString 这样的东西,我会做一个像

- (NSString *)myString {
if (!_myString) {

// ask db for value
_myString = [value returned from db]

}
return _myString;
}

但在 Objective-C 中,BOOL 似乎默认为 NO —— 这意味着我永远不知道该值实际上是否为 NO,或者我只是还没有得到它。我四处寻找,但我似乎无法弄清楚如何为这样的属性(property)创建我想要的那种 setter/getter 。有什么建议么?还是我错过了一些很明显的东西?提前致谢。

最佳答案

您可以在对象内部使用 NSNumber:

// .h
@interface Object : NSObject

@property (nonatomic, assign) BOOL myBool;

@end

//.m
@interface Object ()

@property (nonatomic, strong) NSNumber *myBoolFromDB;

@end

@implementation Object

- (BOOL) myBool {
if (_myBoolFromDB == nil) {
...
}
return [_myBoolFromDB boolValue];
}

@end

关于ios - 如何在 Objective-C 中延迟设置 BOOL 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30432265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com