为什么属性不自动合成

2023-12-01

也许这是一个愚蠢的问题。每次我做一个@property我必须@synthesize它。但这毫无意义,你唯一能做的就是@property(whatever) Type* property就是要做@synthesize property在实施文件中。那么为什么两者都需要呢?为什么编译器不自动生成 getter/setter 方法而无需我编写@synthesize property.


在当前的生产编译器中,默认情况下没有@synthesize-- 就是不执行任何操作,然后在未提供实现时发出警告。

@synthesize在最新版本的 LLVM 2.0 编译器中是自动的。

@dynamic 不需要自己实现 setter/getter 时。@dynamic在运行时动态提供实现时使用。那是,@dynamic foo;结合@property <type> foo;会导致编译器不警告如果你不提供-foo and -setFoo:执行。

请注意,您还可以使用@synthesize propertyName = instanceVariableName;使用特定的、不同名称的实例变量作为后备存储。

@property接口中的 getter/setter 方法声明非常简写。它还携带更多元数据(保留、分配等),编译器在执行过程中会利用这些元数据@synthesize.

并且,一如既往,atomic属性对于线程安全并没有真正的帮助。

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

为什么属性不自动合成 的相关文章

  • 单击 UITabBarController 时的自定义操作

    我有一个选项卡栏控制器 其中添加了四个导航控制器 导航控制器在选项卡栏控制器中显示为选项卡栏项目 现在我想向选项卡栏添加第五个按钮 该按钮不会打开另一个视图 但会触发一些自定义代码 我想在单击该选项卡栏项目时显示覆盖的 共享菜单 无论用户位
  • 如何使我的 Objective-C 类符合 Swift 的“Equatable”协议?

    我有一个 Objective C 类 恰好是一个按钮 但这并不重要 在我的 混合语言 项目的另一部分 我有一个这些按钮的数组 我想获取索引使用按钮的find 方法 就像这样 func doSomethingWithThisButtonInd
  • 将属性字符串中的正则表达式匹配替换为 Objective-C 中的图像

    我的目标是在 Parse com 中存储属性字符串的信息 我决定为我的图像提出一种属性文本编码 通过替换任何字符串来工作 X 与相应的图像放在大括号中 例如 Picture of 2 colorless mana X 应该产生一个属性字符串
  • 是否可以在 UITabBarController 内显示 SFSafariViewController?

    我要加载SFSafariViewController位于选项卡内部 因此选项卡栏位于整个 Safari 视图的底部 这可能吗 我尝试了这个但没有运气 self tabBarController presentViewController s
  • 来自 NSString 的 iOS SecKeyRef

    我需要使用公钥将用户密码加密为 Base64 字符串 公钥是一个 NSString 像这样的东西 MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgWO7p1AvCaHUeaM6rSczBBAqt mKObHx
  • 核心数据是否始终将返回对象视为错误?

    在下面的代码中 我显式地将 returnObjectsasFaults 设置为 false 然后在请求之后我立即检查对象是否有故障 NSAssert 失败 也许是因为该对象是 imageBlob 也许我错过了什么 我只是想确定一下 这是一个
  • 带有嵌套数组的 NSPredicate

    我有以下对象结构 类别 子类别 子类别的 nsarray 子类别 问题 问题的 nsarray 问题 问题 nsstring 答案 ns字符串 我需要的是用给定的子字符串搜索任何问题 以下谓词不起作用 NSPredicate predica
  • C# 属性,是否可以在不定义 set(无支持变量)的情况下绕过定义 get?

    假设您有一个具有 300 个属性且没有支持变量的类 每个属性都返回一个小数 双精度 Example public decimal MathValue get set 现在您决定对这些值中的每一个进行四舍五入 我正在寻找最简单的方法来重构它
  • UIWebView didFinishLoading 多次触发

    我有一些代码需要在 a 之后运行UIWebView完成加载文档 为此我设置了UIWebView的委托给我的控制器 并实现了webViewDidFinishLoading method 这会被多次调用 具体取决于要加载的页面类型 我不确定是否
  • 如何制作字幕 UILabel / UITextField / NSTextField

    我需要制作字幕UILabel在 Xcode 中 选取框将从右向左滚动 我试过CCScrollingLabel also JHTickerView和别的 但我找不到带有选框的简单代码 没有任何视图 数组 一些愚蠢的库和其他库 如何制作选框UI
  • 如何以编程方式设置 iOS 6/7 Delta

    当我离开 iOS6 时 我正在使用 Xcode 4 6 开发 UISplitView 应用程序 我有设计 现在我迁移到新的 Xcode5 现在我有这样的设计 UINavigationBar 完全重叠我的 UISearchBar Leo Na
  • object_setClass()而不是分配isa指针的性能

    我注意到在 XCode 4 6 的最新更新中 我收到了关于以下几行的警告JSONKit m 具体来说 设置对象类的行 dictionary gt isa JKDictionaryClass 这些被标记为已弃用 并注明首选方法是使用objec
  • 外围 BLE 设备的唯一标识符

    所以我有外围设备BLE设备 我需要一些标识符以便稍后与另一部 iPhone 共享 我连接的示例iPhone A 为外围设备 iPhone A 将外围设备的标识符保存到数据库中 稍后我可以轻松获取iPhone B 并连接到通过该标识符找到的外
  • 由于无法确认开发者身份而无法打开

    我在 Mac OSX 中开发了一个应用程序和守护进程 并且我已经在 xcode 中与开发者 ID 签署了应用程序和守护进程源代码 在守护进程中 我已经对每个框架进行了签名并打包 并且我使用软件包安装程序对所有框架进行了 pkg 现在我的应用
  • iOS 显示 UIImage 全屏并启用缩放(捏合和双击)

    我有一个UIImage从相机捕获UIImagePickerController 现在 在用户单击它之后 我希望它显示全屏 并且能够使用捏合手势进行放大和缩小 还可以使用双击手势来放大特定区域 换句话说 我想模拟ios默认图像浏览器的功能 我
  • 当点击 UITableViewCell 的子视图时引发选择事件 (didSelectRowAtIndexPath)

    我创建了一个自定义 UITableViewCell 其中包含许多子视图 在大多数情况下 我希望 UITableViewCell 的控制器来处理事件 在一种情况下 我希望子视图简单地将事件传递给父 UITableViewCell 这将导致它在
  • 我如何知道 UITableView 何时完成 ReloadData?

    我试图在执行完成后滚动到 UITableView 的底部 self tableView reloadData 我原本有 self tableView reloadData NSIndexPath indexPath NSIndexPath
  • 使用 iOS 设备作为 TCP 客户端 - 无 Bonjour

    我想使用 iOS 设备作为 TCP 客户端 但我找不到可理解的 API 指南 示例来说明如何做到这一点 我试过SimpleNetworkStreams and PictureSharing 但他们都使用 Bonjour 我可以轻松建立 UD
  • 连接到 Apple Music

    所以我尝试使用 React Native 应用程序从 iOS 设备连接到 Apple Music 有一个 API 可以执行相同的操作 但我需要从 storekit 框架调用一个函数 提出个性化请求 苹果音乐API https develop
  • iOS:addConstraints:应用程序崩溃

    Problem 我似乎无法在现有项目中采用自动布局 Details 我之前也遇到过与此问题相同的问题presentViewController 在 iOS 但所提供的答案都不是我的解决方案 我正在使用所有没有 xib 的故事板视图 我的 使

随机推荐

  • 每次发出信号时都会多次调用插槽

    我在一个块中使用一个信号和槽连接 我的代码如下 in a cpp QObject connect m ptheFlange2Details SIGNAL GetFlang1DimAfterAnalysis this SLOT GetFlan
  • 我可以根据 firebase firestore 中对象的长度对结果进行排序吗?

    我的 firestore 文档中有一个投票字段 其中存储了对该文档进行投票的人员的 uid 我想调用所有文件并按照投票对象中的票数排序 I tried db collection myCollection orderBy Object ke
  • 合并两个不同维度的数组 PHP

    我有两个不同的维度数组 Array 1 Array1 0 gt Array id gt 123 price gt 5 purchase time gt 2014 4 10 1 gt Array id gt 123 price gt 5 pu
  • 尝试使用 javascript、jquery 和 html 搜索 wunderground 位置

    下面的代码不起作用 尝试搜索天气位置 当我搜索时什么也没有发生
  • Excel-VBA - 在数据字段数组中插入新的第一列,无需循环或 API 调用

    Intro 去年 PrzemyslawRemin 提出了这个问题如何在VBA中向现有矩阵添加计数器列 无需额外的循环 and 无需修改工作表 本示例中的原始矩阵是一个 基于 1 的 2 维 数据字段数组 源单元格仅包含其地址字符串 插入的行
  • 带回“覆盖”窗口方法[重复]

    这个问题在这里已经有答案了 如果我将 window alert 重置为其他功能 有什么方法可以恢复它而无需先 保存 它 例如 window alert function 这样做之后 有没有办法将 window alert 恢复到原来的状态
  • 将静态库转换为共享库?

    我有一个第三方库 主要由大量静态 a 库文件 我可以将其编译成一个 a库文件 但我真的需要它是一个单一的 so共享库文件 有什么方法可以将静态转换为 a文件到共享 so文件 或者更一般地说 是否有一个好的方法来组合大量的静态 a文件有几个
  • 在 Django 框架中发出 ajax Post 请求时出现 403 Forbidden 错误

    我正在尝试将 jquery 集成到我使用 Django 框架制作的 Web 应用程序中 然而我很难尝试做一个简单的ajax打电话去上班 我的模板文件包含用于处理 ajax 调用的 html 和 javascript 表单 如下所示
  • iPhone:在应用程序中同时使用 OpenGL 和本机用户界面的最佳方式是什么?

    我对 iPhone 平台还很陌生 所以我想知道在 OpenGL 渲染和 UIView 之间切换的最佳方式是什么 任何评论都非常感谢 根本不需要切换模式 iPhone 上的 OpenGL ES 渲染是在 CAEAGLLayer 核心动画层中完
  • 如何将一张表与许多不同的表关联起来?

    我有一个表格列表 即学生 教师 员工 部门 等等 每个表都有特定的注释 现在 表中的一条记录可以有一个或多个注释 这表明从任何表到注释表都是一对多关系 我不知道将评论表与其中每一个相关联的最佳方法是什么 如果我将评论表中的外键放入每个表中
  • 如何绘制堆积事件持续时间(甘特图)

    我有一个 Pandas DataFrame 其中包含流量计开始测量流量的日期以及该站退役的日期 我想生成一个以图形方式显示这些日期的图 这是我的数据框的示例 import pandas as pd data index 40623 4063
  • 将团队构建输出文件夹中的文件包含到 XAP 中

    我正在尝试使用 TFS 2010 对 Windows Phone 7 1 项目进行持续集成 有2个资源项目 用于本地化的 Win32 项目 和主要的 Windows Phone 项目 我已将上述 2 个项目的项目输出复制到主 WP 项目中的
  • Docker 堆栈在 Windows 中部署

    我在 docker stack windows 中有一些问题 我们可以在Windows 2016中启用docker stack吗 是否完全支持 如果是 我们如何启用 我们如何使用此文件自动创建 swarm 集群 我搜索过 google 但找
  • 服务器作曲家安装 --no-dev 被杀死

    当我尝试更新包时在服务器中 composer install no dev 结果是 我该如何修复它 看起来像composer install正在尝试更新软件包 因此您可能没有composer lock文件在你的项目中 在这种情况下compo
  • CFDictionary 获取 Swift3 中键的值

    我在访问 CFDictionary 中的特定 或任何 键时遇到问题 老实说 我真的不明白你需要在 Swift 中执行此操作的方式 而且我认为它过于复杂 My Code if let session DASessionCreate kCFAl
  • Jetpack Compose - 使 LazyRow 中的第一个元素与屏幕中心对齐

    我想获得一个LazyRow看起来像这样 aaa b bb cccc dd w x 是一屏宽度 元素的大小各不相同 但它们之间的间距是固定的 我想我可以添加一些开始内容填充LazyRow以便 aaa 可组合项与屏幕中心对齐 但我不知道它的宽度
  • 带空格的 Bash 变量

    我在 Windows 下的 MinGW shell 中面临下一个问题 我在我的 etc profile表达方式 export GIT SSH c Program Files TortoiseGit bin TortoisePlink exe
  • PowerPoint 和 WPF

    我确实需要一种在我的 wpf 应用程序中加载 ppt 文档的方法 谁能给我一个提示 代码示例 结帐下列的讨论线程 Dr WPF 还发表了一篇有趣的文章 可能对您也有帮助 WPF 应用程序中的托管 Office但是 考虑到您的场景的许可证成本
  • 如果是在生产环境中,调试死锁问题的正确行动计划是什么?

    注意我不是在问死锁的概念 我感兴趣的是如果你在生产集群服务器的java应用程序中遇到这个问题你会怎么做以及调试技巧 Question 关于分析步骤的计划的最佳实践 假设 您已经知道一台服务器受到此问题的影响 操作系统使用Linux Goal
  • 为什么属性不自动合成

    也许这是一个愚蠢的问题 每次我做一个 property我必须 synthesize它 但这毫无意义 你唯一能做的就是 property whatever Type property就是要做 synthesize property在实施文件中