草庐IT

objective-c - 子类中的狭义属性类型

今天我遇到了一个奇怪的行为,我没想到Objective-C编译器会允许。在UITableViewCell中,有一个UIImageView类型的名为imageView的属性。我对UITableViewCell进行了子类化,并覆盖了imageView,只是我将其设为AWImageView类型,其中AWImageView是UIImageView的子类。我以为它不会编译,但它会。一切正常。我对这种行为感到非常震惊。官方允许缩小子类中的属性类型吗?还是这是Objective-C编译器中的一个错误? 最佳答案 你对被允许这样做的怀疑是有根据的,

ios - 没有 drawRect : 的 Live Xcode 的 Interface Builder UIView 子类 (IB_DESIGNABLE)

是否可以创建一个UIView子类,在Xcode中实时呈现(通过添加IB_DESIGNABLE属性,如here所述),但没有自定义drawRect:方法?我们有一个自定义的UIView子类,它使用一些CAShapeLayer添加到self.layer进行绘图(因此,不需要覆盖drawRect:)。此类在App上运行良好,但无法在Xcode上呈现。如果我们复制drawRect:中的代码,它可以工作,但我们更愿意让绘图在图层上自动发生。这可以做到吗?我也试过-(void)drawRect:(CGRect)rect{CGContextRefcurrentContext=UIGraphicsGe

cocoa-touch - 使用 loadNibNamed 时未初始化子类 UITableViewCell

我有一个子类UITableViewCell的类。我需要在创建单元格时初始化单元格中的一些值,我正在使用以下方法创建它:NSArray*nibObjects=[[NSBundlemainBundle]loadNibNamed:@"CustomCell"owner:niloptions:nil];通过XCode“添加新文件”接口(interface)创建子类时,我得到以下方法:-(id)initWithStyle:(UITableViewCellStyle)stylereuseIdentifier:(NSString*)reuseIdentifier{if((self=[superinit

objective-c - UIView 子类调用 UIView+Category 方法时抛出 "Selector not found"

我有UIView的子类MyView。我在UIView上还有一个名为UIView+simpleCategory的类别。这个类别声明了一个方法doSomething@interfaceUIView(simpleCategory)-(void)doSomething;@end我在从UIView子类MyView调用doSomething方法时遇到问题。我收到“选择器无法识别”错误。我想知道我需要做什么才能让子类识别其父类(superclass)的类别方法。在我的UIView子类的实例上调用UIView类别方法时出现问题:MyView*view=[[MyViewalloc]init];[view

ios - `NSFormatter` 有多少个晦涩的子类?知道其他人吗?

如果您使用Cocoa一段时间,您可能熟悉NSDateFormatter和NSNumberFormatter。它们可以方便地从日期和数字创建格式化显示字符串,或者将日期或数字字符串转换为数值,同时支持不同的语言和区域设置。几周前,我偶然发现了NSDateComponentsFormatter,它可以让您创建格式化的时间间隔,例如“4小时37分17秒”。很酷。还有相关的NSDateIntervalFormatter,它通过比较2个日期来创建字符串。还有一些非常晦涩的NSFormatter子类:NSMassFormatterNSByteCountFormatterNSLengthFormat

kotlin - 如何获取给定密封类的所有子类?

最近我们将其中一个枚举类升级为密封类将对象作为子类,这样我们就可以创建另一层抽象来简化代码。但是,我们不能再通过Enum.values()函数获得所有可能的子类,这很糟糕,因为我们严重依赖该功能。有没有办法通过反射或任何其他工具来检索这些信息?PS:手动将它们添加到数组中是NotAcceptable。目前有45个,并且计划增加更多。这就是我们的密封类的样子:sealedclassStateobjectStateA:State()objectStateB:State()objectStateC:State()....//42more如果有一个values集合,它将是这个形状:valVAL

kotlin - 如何获取给定密封类的所有子类?

最近我们将其中一个枚举类升级为密封类将对象作为子类,这样我们就可以创建另一层抽象来简化代码。但是,我们不能再通过Enum.values()函数获得所有可能的子类,这很糟糕,因为我们严重依赖该功能。有没有办法通过反射或任何其他工具来检索这些信息?PS:手动将它们添加到数组中是NotAcceptable。目前有45个,并且计划增加更多。这就是我们的密封类的样子:sealedclassStateobjectStateA:State()objectStateB:State()objectStateC:State()....//42more如果有一个values集合,它将是这个形状:valVAL

ios - 如何让子类将属性初始化为正确的类?

我有一个名为SPPanelManager的类,它具有另一个名为SPPanelSettingsManager的类的属性。SPPanelManager在其-init方法中具有以下内容:self.settingsManager=[[SPPanelSettingsManageralloc]init];SPPanelManager的目的是进行子类化,并且子类在我的整个应用程序中使用。例如,有SPGreetingManager。在SPGreetingManager的.h文件中,我声明:@property(nonatomic,strong)SPGreetingSettingsManager*sett

objective-c - 样式 UIButtons - 子类?

我有四个按钮,它们将在同一场景中以相同的方式设置样式(使用Storyboard)。这是一个简单的样式,需要覆盖一些属性默认值,但似乎不必要地重复为每个单独的按钮设置它。我想我会创建一个子类,但我读过的很多帖子(尤其是关于stackoverflow的帖子)都警告不要为UIButton这样做(而且我所做的尝试都没有成功)。只是希望得到一个关于什么被认为是最好的方法的一般指示。感谢您的任何建议。 最佳答案 如果您只针对iOS5,我强烈建议您观看Session114-CustomizingtheAppearanceofUIKitContro

ios - 子类化 UIImagePickerController 以添加功能

基本上我想做的是,将“拍摄图像”按钮更改为我的自定义按钮。当用户改变DeviceOrientation时,按钮会根据方向改变。我已经尝试过使用“overLay”属性,但似乎无法在放置后更改或移动“overLay”。所以我决定子类化UIImagePickerController,但是当我调用它来呈现时,相机根本不会显示!任何有助于理解问题所在的帮助...谢谢!!这是viewController调用子类“UIImagePickerController”:@interfaceCameraViewController:UIViewController@interfaceCameraViewCo