问题标签 [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 投票
4 回答
60716 浏览

objective-c - 类扩展与类类别

类扩展@interface Class () 功能更强大,可以将变量注入到类中。分类@interface Class (Category)不行。

还有什么其他区别,什么时候应该使用类别而不是类扩展?

0 投票
4 回答
424 浏览

objective-c - 如何定义一个将方法添加到实现特定协议的类的类别?

我想向实现 SOManagedObject 协议的 NSManagedObject 子类添加一些方法。我试过这样定义它:

...但这似乎无效。如何定义一个将方法添加到实现特定协议的类的类别?

0 投票
3 回答
337 浏览

iphone - 如何为 UIToolbar 使用不同的多个类别?

我的应用程序中有一些 UIToolbars。我希望每个人都有不同的背景。这是我拥有的类别的示例:

我有一些图像 rowbg1、rowbg2 等,我想将它们用于我的应用程序内部的其他 UIToolbar。如何选择用于相应工具栏的类别?

0 投票
2 回答
3584 浏览

objective-c - Obj-C 块可以自己执行吗?

这是此问题的扩展: 是否可以在 Objective-C 中创建“块”对象的类别

基本上,虽然似乎可以通过 NSObject 或 NSBlock 在块上创建一个类别,但我无法理解块如何能够自我评估。最后一个问题的答案中给出的示例:

暗示可以以某种方式将 self 转换为块变量,但是如何执行块本身呢?例如,假设我在 NSBlock 上做了一个类别,并且在一个方法中做了:

是否有任何消息可以发送给 selfAsBlock 以评估该块?

0 投票
3 回答
913 浏览

objective-c - Objective-c 的类别特性属于哪个 OOPS 特性?

据我所知,Objective-C 是一种面向对象的编程语言,而类别是 Objective-C 提供的功能。

所以我想知道类别功能属于 OOP 概念

  • 抽象
  • 多态性
  • 封装
  • 继承等

提前致谢。

穆纳尔

0 投票
2 回答
2244 浏览

objective-c - 类扩展如何作为实现私有方法的一种手段

我相信在 Objective-C 中声明“私有方法”的一种流行方式是创建它的类扩展并声明您想要设为私有的方法。

我想更详细地了解类扩展如何使这些方法作为私有方法工作。

  • 更新:我用不正确的术语空类别问了这个问题。我现在将其更改为类扩展
0 投票
5 回答
9611 浏览

iphone - Objective-C 协议和类别可以继承吗?

我对围绕 Objective-C 协议和类别的一些概念有点困惑。

Objective-C 中的子类可以继承协议和类别吗?

0 投票
1 回答
151 浏览

cocoa - 在 Cocoa 中命名类别方法的最佳实践

我偶然发现了两个经典的编程问题之一。我正在编写一个 Cocoa 框架,它基本上是最常用的 Foundation 类类别中的(大部分)有用方法的集合。我的问题是如何在我的类别中为所述类命名这些额外的方法?我应该使用前缀还是无前缀命名约定(例如- (void)doSomethingvs - (void)myDoSomething)?

在阅读 Cocoa 文档时,我变得不确定:

在命名类、协议、函数、常量和 typedef 结构时使用前缀。命名方法时不要使用前缀;方法存在于定义它们的类创建的名称空间中。另外,不要使用前缀来命名结构的字段

并在周五问答系列中查看 Mike 的代码示例(例如,方法名称在构建引用计数文章中MARefCounting具有前缀)。

0 投票
7 回答
6036 浏览

c++ - 不是十六进制值 0xffff?

我猜输出应该是“0000”,但它的 ffff 不是 ~ffff->0000 0000 0000 0000

0 投票
4 回答
112 浏览

objective-c - 你能绕过 Objective-C 中的一个类别的行为吗?

我在 UINavigationBar 上有一个类别,它的 drawRect 函数在导航栏中绘制自定义徽标。我的应用程序中有一个视图控制器,我不想为其绘制自定义徽标。

有没有办法绕过类别的 drawRect 功能?