gpt4 book ai didi

iOs 设置原始值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:01 27 4
gpt4 key购买 nike

NSManagedObject 上,如果我调用 setPrimitiveValue,它是否需要包装在 {will|did}ChangeValueForKey 语句中,如果在非设置/获取方法中使用?

例如我想要一个采用键 (NSString) 并增加模型对象属性值的方法。

-(void) incrementItem:(NSString *)key
{
NSNumber *value = [self primitiveValueForKey:key];
int intValue = value.intValue;

[self setPrimitiveValue:[NSNumber numberWithInt: intValue++] forKey:key];
}

最佳答案

在访问原始值(或非托管对象的后备 ivar)时调用 KVO 方法应该始终完成。因此,您的方法应如下所示:

-(void) incrementItem:(NSString *)key
{
[self willAccessValueForKey:key];
NSNumber *value = [self primitiveValueForKey:key];
[self didAccessValueForKey:key];
int intValue = value.intValue;

[self willChangeValueForKey:key];
[self setPrimitiveValue:[NSNumber numberWithInt: intValue++] forKey:key];
[self didChangeValueForKey:key];
}

关于iOs 设置原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384731/

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