在运行时创建实例变量

2024-03-30

我想在运行时动态创建实例变量,并且想将这些变量添加到类别中。实例变量的数量可能会根据我用于定义它们的配置/属性文件而变化。

有任何想法吗??


Use 关联参考 http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocAssociativeReferences.html- 这很棘手,但这是专门为您的用例发明的机制。

这是上面链接中的示例:首先,定义一个引用并将其添加到您的对象中,使用objc_setAssociatedObject;然后你可以通过调用取回值objc_getAssociatedObject.

static char overviewKey;

NSArray *array = [[NSArray alloc] initWithObjects:@ "One", @"Two", @"Three", nil];
NSString *overview = [[NSString alloc] initWithFormat:@"%@", @"First three numbers"];

objc_setAssociatedObject (
    array,
    &overviewKey,
    overview,
    OBJC_ASSOCIATION_RETAIN
);
[overview release];

NSString *associatedObject = (NSString *) objc_getAssociatedObject (array, &overviewKey);
NSLog(@"associatedObject: %@", associatedObject);

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

在运行时创建实例变量 的相关文章

  • 如何将 Android 应用程序添加到已在 iOS 应用程序中使用的现有 Firebase 项目?

    我一直在我的 iOS 应用程序中使用 Firebase 项目 我现在想开始为 Android 应用程序使用相同的 Firebase 项目及其所有数据库和存储 在您的应用程序下Overview菜单 你应该按添加另一个应用程序并选择Androi
  • 将 MPMoviePlayerController 的视图添加到 UIView

    我想添加MPMoviePlayerController to a UIView 首先 我在 xib 文件中放置了一个视图 名为 youTubeView youtube播放器是MPMoviePlayerController youtubePl
  • iOS 上 Safari 中的 shift 键

    有没有办法在javascript中判断手机键盘上是否按下了shift键 并将其与大写锁定 按两次shift键 区分开来 一些事实 首先 让我们看一下有关 iOS 键盘的一些事实 我假设您已经知道了 当您进入键盘模式时 shift键始终处于激
  • iOS 无法获取人物图像

    我有两个 tableViewController 第一个有联系人列表 另一张显示详细的人员信息 第一个tableViewController的一段代码 ABAddressBookRef addressBook ABAddressBookCr
  • Swift try inside Objective-C 块

    我需要创建一个函数foo它接受一个抛出闭包作为参数 我可以使用 Swift 或 ObjC 来实现它 但我需要能够从两者中调用它 像这样 Swift func bar throws func foo block throws gt void
  • UICollectionView 设置列数

    我刚刚开始学习 UICollectionViews 我想知道是否有人知道如何指定集合视图中的列数 默认设置为 3 iPhone 肖像 我查看了文档 似乎找不到简洁的答案 对于 Swift 5 和 iOS 12 3 您可以使用4 以下实现为了
  • supportedInterfaceOrientations 方法不会重写其超类中的任何方法

    在 UIViewController 中 这段代码 public override func supportedInterfaceOrientations gt UIInterfaceOrientationMask if let mainC
  • 如何从标签栏控制器上方显示 UIActionSheet 视图?

    我需要在选项卡栏控制器上方显示操作表 我的意思是 即使操作表视图处于可见模式 我也能够看到选项卡栏控制器 因此 请建议如何从选项卡栏控制器上方查看 是否可以 其次 如何更改操作表的背景颜色和取消按钮背景颜色 请帮我 谢谢你 马丹 莫汉 要从
  • 为什么 iPhone 应用程序的 main() 函数没有机会完成?

    考虑以下main 大多数 iPhone 应用程序都采用以下方法 int main int argc char argv NSAutoreleasePool pool NSAutoreleasePool alloc init int retV
  • 如何在导航栏上添加 UIView?

    我需要覆盖UINavigationBar with UIView像这儿 除了使用带有按钮返回的自定义 UIView 作为导航栏之外 还有其他方法可以做到这一点吗 您可以将子视图添加到应用程序的基本视图 UIApplication share
  • 单击按钮时退出应用程序 - iOS [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 4 0 中退出应用程序 https stackoverflow com questions 3097244 exit application in ios 4 0 我有一个 AlertView
  • iPhone 的翻译器?

    我对为 iPhone 制作一个解释器很感兴趣 这将是一个实验性的想法 但可能会很棒 我喜欢让我自 己的语言适合移动计算和数学的想法 我查阅了很多资料 发现有关 iPhone 上的口译员的信息很复杂 苹果会允许什么 我见过这个应用程序 这是一
  • 在 Xcode 中查找未使用的文件

    我最近开始开发一个新应用程序 它基本上是我以前制作的应用程序的副本 但做了一些更改 为了制作这个新应用程序 我复制了旧应用程序并删除了一些不需要的内容 我想知道 有没有办法知道 Xcode 中正在使用哪些类文件 或者有什么关于如何查找未使用
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • 如何使用 didMoveToView 作为 initWithSize ?

    我将 Xcode 更新到版本 6 从那时起 我就无法使用以前在 Xcode 5 中使用 Objective C 编写的代码了 有一些新文件 GameScene h 和 GameScene m 以及 GameScene sks 而不是 MyS
  • iOS 有 INTERNET 权限吗?

    我在 iOS 设备上的 flutter dio 包上遇到了一个奇怪的问题 我编写了一个向 url 发送 GET 请求的应用程序 Android 上一切正常 但 iOS 上的请求似乎无法通过 没有发生任何错误 什么也没有 我在 Android
  • 将 NSFetchedResultsController 添加到项目后出现问题

    我设置 CoreData 时没有NSFetchedResultsController一切都保存得很好 切换到之后NSFetchedResultsController 我在尝试保存图像时遇到奇怪的错误 这是我用来保存图像的代码 void sa
  • Objective-C 点表示法与类方法?

    请注意 我特别指的是点表示法与类方法一起使用 而不是与实例方法一起使用 出于好奇 我想看看如果我尝试在类方法中使用 Objective C 点表示法语法会发生什么 我的实验如下 import
  • 带有自定义字体的 UILabel 错误呈现

    在我的 iPhone 应用程序中 我为所有 UILabel 设置了自定义字体 更准确地说 我对 UILabel 进行了子类化 重写了一个方法 在该方法中设置了自定义字体 然后将 IB 中的所有标签设置为该自定义类 现在的问题是 所有文本都渲
  • iOS 中是否需要 Google App Indexing SDK 才能使用 Google DeepLinking?

    我想用谷歌应用程序索引与我的网页和 iOS 应用程序 我支持通用链接 or 深层链接用谷歌术语 与苹果Search并相应地设置我的网页 From 谷歌文档 https developers google com app indexing i

随机推荐

  • 如何以编程方式将 Google Sheet 脚本发布/部署为 API 可执行文件? [复制]

    这个问题在这里已经有答案了 我有一个包含脚本的谷歌工作表 我想以编程方式执行以下操作 制作这个 Google 电子表格public以编程方式 我想以编程方式为任何用户 公众 执行与上述电子表格关联的脚本 我可以表演 Publish gt D
  • Google Play 开发者 API - “当前用户没有足够的权限来执行请求的操作。”

    我有一个 Google 开发控制台进程 启用了 Google Play Developer API 并且该项目链接到 Google Play 项目 在 Google Dev 控制台项目中 创建了 OAuth 客户端 ID Web 应用程序
  • 如何指示Lucene中的StandardAnalyzer不删除停用词?

    简单问题 如何制作Lucene的StandardAnalyzer在分析我的句子时不要删除停用词 答案取决于版本 为了Lucene 3 0 3 当前 http lucene apache org java 3 0 3 api core org
  • 如何添加链接到 Flash 横幅

    我主要是一名开发人员 不知道如何使用 Adob e Flash CS4 有没有一种简单的方法可以将链接添加到 Flash 横幅 我有 flv 文件 其中包含库和两层中的一些项目 请给我一步一步的指示 编辑 我找到简单的解决方案 步骤如下 G
  • 放置项和对齐项有什么区别?

    想知道使用有什么区别 display flex align items center or display flex place items center 视觉上看起来是一样的 place items 有 90 的浏览器支持 align i
  • 具有 .htaccess 和 mod_rewrite 的静态 HTML 文件的语义 URL

    mod rewrite 总是让我困惑 谁能告诉我获得以下干净 URL 所需的规则 左边是所需的 URL 右边是真实的 URL our work gt our work html our work some project gt our wo
  • 使用 CORS 和 OpenShift 上的节点应用程序通过 POST 清空请求正文

    我正在 OpenShift 上使用 Express 创建一个简单的 Node 应用程序 我只是修改 OpenShift 的默认示例 Node 应用程序 我想要 CORS 支持 var cors require cors Initialize
  • 在Python中计算元音

    def main print count def countVowels string vowel aeiouAEIOU count 0 string input enter a string for i in string if i in
  • 文本区域和超链接?

    我有两个关于 Visual Studio 中的 C 的快速 简单的问题 首先 除了程序中的文本区域之外 是否有类似标签的东西 我想在我的程序中包含多行文本 但似乎只能使用打开自动换行的 DotNetBar 标签来完成它 其次 有没有办法在不
  • 是否存在任何危险,例如使用 pip 的 --ignore-installed 标志导致冲突?

    我无法找到 pip 的良好文档 ignore installed flag pip install help简单地说 忽略已安装的软件包 而是重新安装 除了系统上存在更多问题的副作用之外 因为安装的软件包在升级时不会被卸载 是否还有其他已知
  • PHP 评估 $a="$a"?

    我正在查看一些工作代码 并发现了这一行 eval element element 我真的很困惑为什么 PHP 开发人员会写这行代码 除了为自身设置一个变量之外 这还有什么目的 幸运的是 该行所在的函数从未被调用 上面的例子将输出 This
  • 在 Woocommerce 结帐页面中添加信息丰富的自定义消息

    我有一个基于 WP Woocommerce 的网站 我想告诉我的客户 每当他们在我的商店购买东西时 他们订单的 3 都会捐赠给慈善协会 我想显示根据总数计算的确切金额 例如 总计 150 欧元 5 欧元将被下放等 我该如何管理它 您可以将其
  • > 无法在 /opt/android-sdk-linux 中找到哈希字符串“android-26”的目标

    乌班图16 04 android sdk 位于 opt android sdk linux android home 配置 导出 ANDROID HOME opt android sdk linux opt android sdk linu
  • C++ 中真正的异步文件 IO

    我有一个超快的 M 2 驱动器 有多快 没关系 因为我无论如何也无法利用这个速度 这就是我问这个问题的原因 我有一个需要大量内存的应用程序 太多了 以至于内存装不下 幸运的是 并不是一下子就需要它 相反 它用于保存计算的中间结果 不幸的是
  • AdMob - Android 活动中的更好性能

    我有一个 Android 应用程序 我在其中实现了 AdMob 广告 我的布局代码非常简单 将 AdView 添加到 LinearLayout 中
  • 访问者模式对于动态类型语言有用吗?

    访问者模式允许在不扩展对象类的情况下编写对对象的操作 当然 但为什么不直接编写一个全局函数或静态类来从外部操作我的对象集合呢 基本上 在像 java 这样的语言中 accept 出于技术原因需要方法 但在一种语言中我可以实现相同的设计而无需
  • 替换字符串中最后一次出现的字符[重复]

    这个问题在这里已经有答案了 我有一个像这样的字符串 Position fix dial 我想用转义双引号 替换最后一个双引号 字符串的结果是 Position fix dial 我怎样才能做到这一点 我知道要替换字符串的第一次出现 但不知道
  • Android 阻止将照片保存在 DCIM/公共文件夹中

    我正在开发一个 Android 应用程序 用户单击按钮后可以拍照 这张照片将通过以下方法保存到内部包存储 data data package private String saveToInternalSorage Bitmap bitmap
  • 如何在 sqlalchemy 中执行返回的原始查询

    我有一张桌子Ticket具有id 自动递增 票号 读取序列的触发器 value and date在甲骨文中 我想做以下事情 INSERT INTO TICKET value date values 100 TO DATE 07 29 201
  • 在运行时创建实例变量

    我想在运行时动态创建实例变量 并且想将这些变量添加到类别中 实例变量的数量可能会根据我用于定义它们的配置 属性文件而变化 有任何想法吗 Use 关联参考 http developer apple com library ios docume