objective-c-category相关内容

类别中的 NSManagedObject 子类属性

NSManagedObject 子类属性是在其类别文件中创建的,由于类别只能有方法,因此非常有线.详情如下: (1).我在 .xcdatamodeld 文件中创建了一个名为 BibleAudio 的实体,具有如下几个属性. (2).xcode 生成的目标 c 文件为“BibleAudio + CoreDataProperties.h"、“BibleAudio + CoreDataPro ..
发布时间:2021-12-23 14:03:10 移动开发

如果这是在 Objective C 中使用自定义字符串属性的正确方法,为什么我不能提取正确的数值?

我正在修改一个早期项目,我使用标签来识别 1-of-5、1-of-16 或 1-of-10 UIButtons.我想根据我对这个答案的理解,用自定义属性替换标签. 名为 myInfo 的属性由一个字符串和一个整数组成.这很可能是另一个名称的标签,但它使消息源以一种简单的整数标签不能唯一识别的方式,从我的代码中清除幻数,并希望改进文档. 属性是使用类别创建的 UIView+Cust ..
发布时间:2021-09-12 19:49:26 移动开发

使用基于变量的属性扩展 Objective-c 中的类

我在 Objective-c 中有一个表单实现,我想扩展我的小部件(NSButton、NSTextField 等)以包含额外的字符串,表示在提交事件发生后要使用的唯一标识符字符串,其中json 的触发器生成包含所有小部件 id/value 对. 我已经尝试使用类别来扩展 NSControl,它是所有这些小部件的共同父级. NSControl+formItemSupport.h------- ..
发布时间:2021-06-12 19:21:52 移动开发

如何定义将方法添加到实现特定协议的类的类别?

我想向实现 SOManagedObject 协议的 NSManagedObject 的子类添加一些方法.我试过这样定义它: @interface NSManagedObject (我的扩展方法)...@结尾 ...但这似乎无效.如何定义将方法添加到实现特定协议的类的类别? 解决方案 一般来说,在所有此类类上定义此类类别并非易事.但您的实际问题似乎更简单:如何将类别方法添加到 NSMan ..
发布时间:2021-06-11 20:37:32 移动开发

如何在命名类别中声明私有属性?

我知道可以通过将私有属性放在该类的实现 (.m) 文件中声明的该类的未命名类别中来声明该类的私有属性.那不是我想做的. 我正在处理一个类上的命名类别,该类别为该类添加了一些功能.对于此功能,在我的类别中使用私有属性对我有很大帮助 - 因此实现此目的的常用方法(如上所述)似乎对我不起作用.或者是吗?请赐教! 解决方案 在您的类别的实现文件中,声明另一个类别并将其命名为类似 MyCate ..

自动调整 UILabel 的高度

我使用以下两种方法(一种是NSString的类别,另一种是UILabel的类别)来自动调整标签的高度里面的文字.大多数情况下它运行良好,但它产生了一些不可预测的结果.我不太确定问题可能出在哪里,我希望你们中的一些好人可以提供帮助.首先,这里是有问题的方法: NSString 类别: - (CGFloat) fontSizeWithFont: (UIFont *) font constrai ..
发布时间:2021-06-09 20:17:14 移动开发

Xcode可以告诉我是否忘记在目标中包含类别实现吗?

我有一个要导入.m的类别: #import"UIView + Additions.h" 如果我忘记将 UIView + Additions.m 添加到目标中,那么直到运行时找不到运行选择器时,我才知道.有没有一种方法可以在编译时(或者可能在链接时)找出我忘记包含类别的实现的方法? 解决方案 此宏有效! #ifndef HJBObjCCategory_h#define HJBOb ..
发布时间:2021-05-29 21:27:44 移动开发

类扩展如何作为实现私有方法的一种方法

我相信在Objective-C中声明“私有方法”的一种流行方法是创建其类扩展,并声明要设为私有的方法。 我想详细了解类扩展如何使方法以私有方式工作。 更新:我用不正确的术语空类别询问了这个问题。我现在将其更改为类扩展 解决方案 “空类别”,它是类扩展。在我提供的链接上阅读Bbum对它们的解释。 ..

在编写Objective-C类别时,我如何知道要覆盖哪些方法?

我想在UINavigationItem上写一个类别,以在整个应用程序中对barBackButtonItem进行更改. 根据我在此处的评论(更改所有UIViewController的BackBarButtonItem吗?),我应该“重写backBarButtonItem,那么每当需要调用其后退按钮按钮项时,就会调用您的方法." -但是我如何知道要覆盖的方法?我看过UINavigationIte ..
发布时间:2020-05-23 18:44:54 移动开发

可以重写类别方法吗?的iOS

我正在尝试计划如何向某些对象的所有实例添加几个方法.我认为将类别添加到父对象(UIViewController)可以满足我的要求,但是我可以覆盖以这种方式添加的方法吗?大多数时候,子类将使用默认方法,但是我知道我将需要至少重写一次该方法. 我还想考虑其他什么方法? 我想做的事的例子: 我有一组类似于期刊页面的对象.这些页面是UIViewControllers的子类.我想添加用于加 ..
发布时间:2020-05-23 18:34:21 移动开发

这是合理的Objective-C块实现吗?

我想要一个NSRegularExpression的– stringByReplacingMatchesInString:options:range:withTemplate:方法的变体,它采用一个块而不是一个模板.该块的返回值将用作替换值.可以想象,这比模板更灵活.有点像在Perl正则表达式中使用/e修饰符. 所以我写了一个类别来添加方法.这是我想出的: @implementation ..

为什么类别不能有实例变量?

我了解我们可以使用关联引用来在类别中调用类似ivar的行为.但是,无法在类别中声明新的ivars的具体原因是什么? 是因为我们会入侵班级的私人空间吗?还是还有其他原因?如果是的话,我将不胜感激一个示例,该示例显示了可以在打破任何中断的类别中声明ivars的功能. 解决方案 将Objective-C的错误视为简单的旧C结构.实例化一个类的实例时,将创建一个足以容纳该结构的内存块. ..
发布时间:2020-05-19 00:49:14 移动开发

协议与类别

有人能解释Objective-C中的协议和类别之间的区别吗?您什么时候使用另一个? 解决方案 协议与Java中的接口是一回事:本质上是一个契约,说,“任何实现此协议的类也将实现这些协议.方法." 另一方面,类别仅将方法绑定到类.例如,在 Cocoa 中,我可以为NSObject创建一个类别,该类别允许我将方法添加到NSObject类(当然还有所有子类)中,即使我真的没有访问NSObj ..

班级扩展与班级类别

类扩展@interface Class ()功能强大得多,可以将变量注入到类中.类别@interface Class (Category)不能. 还有什么其他区别?什么时候应该在类扩展上使用类别? 解决方案 主要区别在于,通过扩展,编译器将期望您在主@implementation内实现方法,而对于类别,则拥有单独的类别@implementation块.因此,您几乎应该只在主.m文件的 ..
发布时间:2020-05-19 00:17:20 移动开发

具有+的Objective-C类名称

一个类名,例如UIImage+Something或UIImageView+Somethingelse,是否意味着它像自定义的UIImage或UIImageView一样起作用? 解决方案 我认为您正在查看的是“类别"而不是“类"的文件名.在类名称或Objective-C中的任何其他标识符中,不允许使用加号+. Objective-C类别是一种将方法(但不包括实例变量)添加到您不一定有其 ..