问题标签 [objc-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 投票
1 回答
3674 浏览

objective-c - 任何人都可以在目标 C 中为普通类而不是类别或协议提供前向声明的示例吗?

任何人都可以在目标 C 中为普通类而不是类别或协议提供前向声明的示例吗?

0 投票
1 回答
115 浏览

objective-c - 关于类别的客观 C 解释?

在我的菜鸟头脑和程序中,当我为一个类创建一个类别时,我在一个新文件中创建它

NSArray+Shuffle.h and .m

但我注意到,当我创建例如一个 ViewController 时,

我在实施中有:

所以我的问题是:

是什么

部分?,这是用于类别吗?或者有什么用?,如果是用于类别,为什么在这里使用它而不是在一些新文件中?

谢谢!

0 投票
2 回答
1332 浏览

objective-c - Objective c 类扩展标头 - xcode 中的新功能

我试图使用 Xcode 中新的目标 c 类扩展标头(仅 .h)模板。我不知道该怎么做。好吧,我做了文件-> 新文件-> 目标 c 类扩展标头,并给它起了一个名字“UICodeButton”,它继承自 UIButton。现在在那个 .h 文件中我写了 @property (read write) NSInteger * cID; 就在执行的下面。所以像这样:

我在 viewcontroller 类中使用它。所以我有(ViewCP.h 和 ViewCP.m)文件。在 .m 文件中,我正在导入 #import "UIButton_UICodeButton.h" 在此文件中,我在视图中写入确实加载了以下内容

输出:值为555

我在定义中将 S_B_T 设置为 555。当它碰到 self.btnJobType.pID= &(tt); 它抛出一个错误 *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[UIRoundedRectButton setPID:]:无法识别的选择器已发送到实例。所以我没有用它写正确的东西。我应该在哪里写 pID 的设置方法?我认为合成 pID 可以解决问题。但显然不是。那么我该如何进行呢?我搜索了“目标 c 类扩展”的示例。但找不到任何示例。如果需要更多信息,请告诉我。谢谢

0 投票
2 回答
66 浏览

ios - 在 Objective C 中使用类别

我有一个文件ViewMessages.m,它变得非常冗长。我想重构并将我的部分方法放入一个单独的文件中。似乎类别是正确的方法,所以我创建了一个Categoryon ViewMessagescalledDataEngineViewMessages

它创建了 2 个文件,DataEngineViewMessages.h并且DataEngineViewMessages.m

我的问题:我需要#import "DataEngineViewMessage.h"在我的原始方法中ViewMessage.h还是.m为了访问我的新方法?

0 投票
1 回答
360 浏览

ios - 如何在目标 c 中动态创建类别?

我正在开发一个objective-c 库项目('MyLib')。假设这个库随后包含在“TestApp”中。现在,“TestApp”还包括另一个名为“Xlib”的库。这个 Xlib 有一个类 C1,它有一个方法 m1。

现在,每次调用 m1 时,MyLib 都应该执行一段代码。我的方法是,如果我在 MyLib 中创建一个类别:

问题: MyLib 没有 C1 类。所以我无法构建 MyLib,因为我试图在一个不存在的类上创建一个类别。因此,编译错误。

所以,然后我尝试将上面的代码包装在里面:

MyLib 现在可以正常编译和构建,但由于 MyLib 中不存在 C1.h,因此 mylib.framework 不会有此类别。

现在,我有两个选择: 1. 动态创建这个类别,这样一旦库被包含在应用程序中,然后当应用程序运行时,将根据TestApp 是否包含Xlib 来创建这个类别。2.从编译源中删除具有此类别代码的文件,然后以某种方式将该文件在我的框架中公开给TestApp。

我无法解决任何一个选项。关于现有选项的任何想法?或任何新的选择?

编辑:添加了详细信息,因为问题不是很清楚

0 投票
0 回答
77 浏览

ios - ObjC SDK 中的方法调配

我正在编写一种新HTTP Library的 SDK。为了实现横切关注点,我们计划编写类似于 c# 的中间件支持,即处理重试、重定向、日志记录等的机制。

使用方法调配来调配一些NSURLSession方法以实现上述目标是一个好主意吗?