问题标签 [objective-c-category]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 协议与类别
谁能解释一下Objective-C 中协议和类别之间的区别?你什么时候使用一个而不是另一个?
ios - 为所有 UIImageViews 添加圆角
我想为我项目中的所有 UIImageView 添加一些圆角。我已经让代码工作了,但我必须将它应用到每张图片上;我应该继承 UIImageView 来添加这个吗?如果是这样,有人可以给我一些关于如何做到这一点的指示吗?
这是代码
iphone - 在哪里放置“额外”实现?
有时我会看到为对象创建新方法的代码片段,如下所示:
我把这段代码放在哪里?我是否将它放在我目前正在为其编写代码的课程中?如果是这样,我需要在代码中的哪个位置放置它?
谢谢你。
iphone - 为什么我的 UIView 类别会导致警告?
我向 UIView 添加了一个类别来保存一些转换辅助方法。这些方法都有效;但是,我收到编译器警告:
警告:“UIButton”可能不会响应“-fadeOutWithDuration:”
我的“UIView+Trans.h”文件如下所示:
我的“UIView+Trans.m”文件如下所示:
我正在调用这样的方法:(并且在每个使用类别方法的文件顶部都有#import "UIView+Trans.h"。)我还尝试将 UIButton* 转换为 UIView*。
我已经在同一个项目中成功地使用了这篇Categories Example文章中的“NSString+Reverse”示例,并且没有出现讨厌的警告。
objective-c - 使用类别扩展 iTunesApplication 类
我只是在学习如何使用 ScriptingBridges。我做了一种方法,可以慢慢淡化 iTunes 上的音量,并希望将其设为一个类别,以便我可以执行以下操作:
我为 NSSpeechSynthesizer 制作了另一个有效的类别,但我无法得到这个。我不断收到以下构建错误:
由于我不能包含符号,因此我可以做些什么特别的事情来使它工作?
谢谢,
瑞恩彭德尔顿
更新: 我只找到了一个解决方案,如下所示。它涉及 MethodSwizzling,所以我愿意接受更好的答案,但现在这就是我所拥有的。
objective-c - Objective-C 类别问题
我通过为NSString
该类创建一个新类别来创建自定义排序。下面是我的代码。
我的问题是我是否创建一个点字典来根据 plist 确定与字母表中每个字符相关联的点值。然后在我的视图控制器中,我调用
按点值对我的单词表进行排序。但是,每次-sortByPoint:
调用该方法时都创建一个新字典是非常低效的。有没有办法预先创建 pointDictionary 并将其用于 中的每个后续调用-calculateWordValue:
?
ios - 使用类别覆盖方法时如何调用原始实现?
我试图弄清楚事情是如何运作的。所以我想当我使用类别覆盖某些方法时,我会得到有趣的 NSLogs。
super 和 self 在这里不起作用。有没有办法调用 -hitTest:withEvent: 的原始实现?我想要的是每次在 UIView 上调用 -hitTest:withEvent: 时的 NSLog。
仅用于个人学习目的。我想看到事件传递的实际效果。
objective-c - 在重写的类方法中调用 super
我想通过这样的类别UIButtonType
向UIButton
类添加一个新的自定义:
是否有可能以super
某种方式实现该覆盖方法?
上面的代码无效,因为在此上下文中super
引用。UIControl
objective-c - Objective-C 释放在类别中声明的属性?
我在现有类上有一个类别,它向该类添加了一个属性和一些方法。
在实现文件中,我想在对象被释放时释放这个属性。但是,如果我dealloc
在这个类中声明,它将根据我的理解覆盖原始类中的 dealloc。那么aProperty
当对象被释放时释放它的正确方法是什么?
objective-c - 是否有可能只有在方法不存在时才加载的 Objective-C 类别?
在过去的项目中(iOS 4.0 之前),我在 上编写了以下类别方法NSSortDescriptor
:
当 Apple 发布 iOS SDK 4.0 时,它包含了完全相同的方法(大概做了完全相同的事情)。如果您正在运行特定的操作系统版本,或者可能更重要的是,如果还没有使用相同签名声明的方法,是否可以编写一个仅添加到运行时的类别?
在这种情况下,使用类别覆盖该sortDescriptorWithKey:ascending:
方法可能是安全的,这将同时支持 iOS 3 和 iOS 4,因为我的版本几乎肯定会做同样的事情。如果可能的话,我仍然宁愿不要乱用系统定义的方法,因为在极端情况下(不太可能)可能会破坏东西。