gpt4 book ai didi

objective-c - 多重赋值是 Obj-C 中的 hack 吗?

转载 作者:太空狗 更新时间:2023-10-30 03:52:24 25 4
gpt4 key购买 nike

所以,我得到了一个具有大量属性的类 (IKImageView)。

我知道 View setProp: BOOL 返回 void。然而:

BOOL b = view.prop = NO;

似乎有效。如果我有一个函数 f() 返回一个 bool 值,有谁知道这是否真的在做:

[view setProp:f()];
Bool b = [view getProp];

[view setProp: f()];
Bool b = f();

BOOL TMP = f();
[view setProp: TMP];
BOOL b = TMP;

我问是因为当我这样做时:

BOOL b = view.hasHorizontalScroller = YES;
NSLog(@"b is %d scroll is %d", b, [view getHasHorizontalScroller]);

我得到“b 是 1,滚动是 0”(这意味着 setHasHorizo​​ntalScroller 由于某种原因失败,但 b 设置正确)

但是:

BOOL b;
[view setHasHorizontalScroller: YES];
b = [view getHasHorizontalScroller];
NSLog(@"b is %d scroll is %d", b, [view getHasHorizontalScroller]);

我得到“b is 0 scroll is 0”

这让我很困惑。 (此外,如果有人能告诉我将属性设置为 YES 是如何失败的,但是它成功地设置了 b...但没有出现错误...

最佳答案

正在做

BOOL TMP = f();
[view setProp: TMP];
BOOL b = TMP;

在发布属性之前已经讨论过这个问题。有些人认为这应该是一个编译错误以避免歧义。

最好完全避免构建。

关于objective-c - 多重赋值是 Obj-C 中的 hack 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2097339/

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