问题标签 [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.

0 投票
7 回答
21224 浏览

objective-c - 协议与类别

谁能解释一下Objective-C 中协议类别之间的区别?你什么时候使用一个而不是另一个?

0 投票
6 回答
64916 浏览

ios - 为所有 UIImageViews 添加圆角

我想为我项目中的所有 UIImageView 添加一些圆角。我已经让代码工作了,但我必须将它应用到每张图片上;我应该继承 UIImageView 来添加这个吗?如果是这样,有人可以给我一些关于如何做到这一点的指示吗?

这是代码

0 投票
3 回答
393 浏览

iphone - 在哪里放置“额外”实现?

有时我会看到为对象创建新方法的代码片段,如下所示:

我把这段代码放在哪里?我是否将它放在我目前正在为其编写代码的课程中?如果是这样,我需要在代码中的哪个位置放置它?

谢谢你。

0 投票
1 回答
551 浏览

iphone - 为什么我的 UIView 类别会导致警告?

我向 UIView 添加了一个类别来保存一些转换辅助方法。这些方法都有效;但是,我收到编译器警告:

警告:“UIButton”可能不会响应“-fadeOutWithDuration:”

我的“UIView+Trans.h”文件如下所示:

我的“UIView+Trans.m”文件如下所示:

我正在调用这样的方法:(并且在每个使用类别方法的文件顶部都有#import "UIView+Trans.h"。)我还尝试将 UIButton* 转换为 UIView*。

我已经在同一个项目中成功地使用了这篇Categories Example文章中的“NSString+Reverse”示例,并且没有出现讨厌的警告。

0 投票
3 回答
742 浏览

objective-c - 使用类别扩展 iTunesApplication 类

我只是在学习如何使用 ScriptingBridges。我做了一种方法,可以慢慢淡化 iTunes 上的音量,并希望将其设为一个类别,以便我可以执行以下操作:

我为 NSSpeechSynthesizer 制作了另一个有效的类别,但我无法得到这个。我不断收到以下构建错误:

由于我不能包含符号,因此我可以做些什么特别的事情来使它工作?

谢谢,
瑞恩彭德尔顿

更新: 我只找到了一个解决方案,如下所示。它涉及 MethodSwizzling,所以我愿意接受更好的答案,但现在这就是我所拥有的。

0 投票
2 回答
248 浏览

objective-c - Objective-C 类别问题

我通过为NSString该类创建一个新类别来创建自定义排序。下面是我的代码。

我的问题是我是否创建一个点字典来根据 plist 确定与字母表中每个字符相关联的点值。然后在我的视图控制器中,我调用

按点值对我的单词表进行排序。但是,每次-sortByPoint:调用该方法时都创建一个新字典是非常低效的。有没有办法预先创建 pointDictionary 并将其用于 中的每个后续调用-calculateWordValue:

0 投票
3 回答
4599 浏览

ios - 使用类别覆盖方法时如何调用原始实现?

我试图弄清楚事情是如何运作的。所以我想当我使用类别覆盖某些方法时,我会得到有趣的 NSLogs。

super 和 self 在这里不起作用。有没有办法调用 -hitTest:withEvent: 的原始实现?我想要的是每次在 UIView 上调用 -hitTest:withEvent: 时的 NSLog。

仅用于个人学习目的。我想看到事件传递的实际效果。

0 投票
3 回答
3664 浏览

objective-c - 在重写的类方法中调用 super

我想通过这样的类别UIButtonTypeUIButton类添加一个新的自定义:

是否有可能以super某种方式实现该覆盖方法?

上面的代码无效,因为在此上下文中super引用。UIControl

0 投票
2 回答
3124 浏览

objective-c - Objective-C 释放在类别中声明的属性?

我在现有类上有一个类别,它向该类添加了一个属性和一些方法。

在实现文件中,我想在对象被释放时释放这个属性。但是,如果我dealloc在这个类中声明,它将根据我的理解覆盖原始类中的 dealloc。那么aProperty当对象被释放时释放它的正确方法是什么?

0 投票
2 回答
321 浏览

objective-c - 是否有可能只有在方法不存在时才加载的 Objective-C 类别?

在过去的项目中(iOS 4.0 之前),我在 上编写了以下类别方法NSSortDescriptor

当 Apple 发布 iOS SDK 4.0 时,它包含了完全相同的方法(大概做了完全相同的事情)。如果您正在运行特定的操作系统版本,或者可能更重要的是,如果还没有使用相同签名声明的方法,是否可以编写一个仅添加到运行时的类别?

在这种情况下,使用类别覆盖该sortDescriptorWithKey:ascending:方法可能是安全的,这将同时支持 iOS 3 和 iOS 4,因为我的版本几乎肯定会做同样的事情。如果可能的话,我仍然宁愿不要乱用系统定义的方法,因为在极端情况下(不太可能)可能会破坏东西。