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

2024-02-11

所以,我有一个带有一堆属性的类(IKImageView)。

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

BOOL b = view.prop = NO;

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

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

or

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

or

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 is 1,scroll is 0”(这意味着 setHasHorizo​​ntalScroller 由于某种原因失败,但 b 设置正确)

but:

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

我得到“b 是 0 滚动是 0”

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


它正在做

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

在房产交付之前就对此进行了讨论。有些人认为这应该是一个编译错误以避免歧义。

最好完全避免施工。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多重赋值是 Obj-C 中的 hack 吗? 的相关文章

随机推荐

  • C# 中是否有存储优化的稀疏矩阵实现?

    有没有优化过的存储稀疏矩阵 http en wikipedia org wiki Sparse matrix在C 中的实现 有Math NET http www mathdotnet com 它有一些备用矩阵实施 http nmath so
  • 在Python中将微秒增量转换为各自转换的最佳方法?

    我目前有一个预定义的字典 忽略字母 不过 我希望转换更加稳健 假设输入 33000000 微秒并知道转换为 33 秒 然后 一分钟以上但一小时以下的任何微秒输入都会显示为分钟等 是否可以在不需要此预定义字典的情况下获得此编码 最好是一个函数
  • 如何解决python中pydicom的编码问题

    这是代码 import dicom ds dicom read file FILE PATH print ds Error LookupError unknown encoding ISO 2022 IR 100 当使用 pydicom 查
  • 冻结 EPPlus 中的列(Excel 拆分函数)

    我一直在使用 EPPlus 来生成 Excel 文件 以满足我的项目要求我进行的导出数量 他们想要的大多数导出往往与他们遗留系统中已有的导出完美匹配 然而 其中之一 他们想要不同 他们希望它看起来与遗留系统的导出之一一模一样在他们完成一些典
  • COM + 等待单对象

    在过去的几天里 我一直在努力为一个应用程序找到一个好的架构 经过一番研究后 我终于陷入困境 原因就是 COM 相关应用程序将有多个 GUI 线程 它们将为工作线程安排工作项 工作线程将通过 CoInitialize NULL 初始化 COM
  • 如何将 ng-href 与绝对 url 一起使用?

    我对 AngularJS 仍然很陌生 我有一个问题 我似乎无法找到解决方案 而且我没有时间去研究 Angular 源代码 这是我的场景 我有一些 json 数据 其中包含我想在屏幕上显示的 url 集合 我有一个元素ng repeat li
  • 如何修复这些漏洞? (npm 审核修复未能修复这些漏洞)

    我的项目有 6 个高严重性漏洞 我不知道如何修复它们 npm 审核修复失败 请帮我解决这个问题 我正在安装https www npmjs com package toastr https www npmjs com package toas
  • Delphi:了解构造函数

    我正在寻找理解 virtual override overload 重新介绍 当应用于对象构造函数时 每次我随机添加关键字 直到编译器关闭 并且 在使用 Delphi 开发 12 年之后 我宁愿知道我在做什么 而不是随机尝试 给定一组假设的
  • 弹簧MVC。 POST 表单未绑定

    我有一些简单的 Man 类 其中包含构造函数 getter 和 setter public class Man Size min 3 max 20 message Username must be between 3 and 20 char
  • Symfony2 从 URL 获取路由名称

    好的 你可以通过以下方式获取当前路线名称app request attributes get route 但无法从 url 获取 就像是app request attributes get about 您可以使用Router为此类 服务 p
  • Discord.js 获取具有特定角色的所有成员

    我正在尝试让所有具有特定角色的成员加入 每当我运行该命令时 我只得到我自己和机器人 如果机器人具有该角色 但服务器中还有其他 4 个人具有相同的角色 但他们都没有出现 如果我获取所有成员 他们就会表现得很好 有谁知道为什么会发生这种情况 C
  • WPF 中的全局鼠标挂钩

    我需要获取鼠标在屏幕上的位置NOT在我的应用程序中 我用过全局鼠标和键盘钩子here http www codeproject com Articles 7294 Processing Global Mouse and Keyboard H
  • Julia DataFrames.jl - 使用 NA 过滤数据 (NAException)

    我不知道如何处理NA在 Julia DataFrames 中 例如 使用以下 DataFrame gt import DataFrames gt a DataFrames data 1 2 3 4 5 gt b DataFrames dat
  • JSP Web 应用程序中的国际化?

    在我当前的项目中 我们正在考虑逐步淘汰旧的表示层 并用更现代 更知名的东西取代它 由于各种原因 选择 JSP 作为技术 可能与 Apache Tiles 结合使用 我或许应该提到 如果这很重要的话 我们正在后面使用 Spring 国际化是一
  • SwiftUI ViewModel 发布的属性和绑定

    我的问题可能是误解的结果 但我无法弄清楚 所以这里是 使用 TextField 等组件或任何其他需要绑定作为输入的组件时 TextField title StringProtocol text Binding
  • Python 中的带宽限制

    哪些库可以让您控制网络请求 特别是 http 的下载速度 我没有在 urllib2 中看到任何内置内容 也没有在我打算使用的 Py Qt 中看到 Twisted 可以控制带宽吗 如果没有 如何控制 urllib2 或 Twisted 的读取
  • AngularJS序列化表单数据

    我希望在 angularjs 中序列化表单数据 以下是控制器代码 function SearchCtrl scope element http scope url php search php scope submit function v
  • 导航栏不显示 iOS swift

    我的应用程序中有多个视图控制器 我想隐藏navigationbar在我的第一个视图控制器中 所以我使用下面的代码来隐藏导航栏 navigationController setNavigationBarHidden navigationCon
  • 如何使正则表达式仅匹配西里尔保加利亚字母

    您好 我想用空字符串替换拜尔加字母表中的所有字母 我看过这个链接如何将西里尔字母与正则表达式匹配 https stackoverflow com questions 1716609 how to match cyrillic charact
  • 多重赋值是 Obj-C 中的 hack 吗?

    所以 我有一个带有一堆属性的类 IKImageView 我知道视图 setProp BOOL 返回 void 然而 BOOL b view prop NO 似乎有效 如果我有一个返回布尔值的函数 f 有谁知道这是否真的在做 view set