我对 Objective-C 的语法非常有经验,但缺乏它的对象部分是如何工作的(是的,我知道,它不好)。我想知道一些事情:
- 如何创建对象。
- 如何使它从其他类(即 UIView)继承某些属性。
- 如何在其中制作自己的属性(即健康、伤害、耐力)。
如果有人可以帮助我,我将不胜感激。
我对 Objective-C 的语法非常有经验,但缺乏它的对象部分是如何工作的(是的,我知道,它不好)。我想知道一些事情:
如果有人可以帮助我,我将不胜感激。
在阅读已经发布的文档之前要查看一些示例:实例化一个类:
SomeClass *instantOfSomeClass = [[SomeClass alloc] init];
要继承属性,您可以对其进行子类化。要添加自定义属性,请在您的子类中指定它们。
@interface SomeClassThatExtendsUIView : UIView
@property NSInteger health;
@property NSInteger damage;
@property NSInteger stamina;
@end
@implementation SomeClassThatExtendsUIView
// if not using auto synthesize
@synthesize health = _health;
@synthesize damage = _damage;
@synthesize stamina = _stamina;
@end
如何创建对象。
对象是面向对象编程的概念,但实际上可以将其定义为类的实例。
根据您想要的对象类型,有几种方法可以创建它。然而,它们都可以用一个简单的 alloc - init 创建
一般来说应该是:
ClassName *objectName = [[ClassName alloc] init];
如何使它从其他类(即 UIView)继承某些属性。
当您对它们进行子类化时,它们会继承这些属性。例如:
@interface UIView : UIResponder
是 UIResponder 的子类,它是 NSObject 的子类:
@interface UIResponder : NSObject
如果您想使用 UIView 的属性创建自己的“对象”,您只需执行以下操作:
@interface customView : UIView
在您的自定义类的标题上。
xcode 通过让您在创建新类时选择超类来方便地进行子类化。如果你这样做,它甚至会给你一个常用覆盖方法的模板。
如何在其中制作自己的属性(即健康、伤害、耐力)。
一旦您将自定义类创建为您想要的任何内容的子类,您只需在头文件中添加您自己的属性:
自定义视图.h:
@interface CustomViewClass : UIView
@property (strong, nonatomic) UIButton *customButton;
- (void)someCustomMethod;
@end
然后,当您想使用它时,您只需
CustomViewClass *customView = [[CustomViewClass alloc] init];
并且您的自定义视图也可以访问通常的 UIView 属性和 customButton 属性。
(实际的 uiview 类默认构造函数是 initWithFrame 但您也可以通过这种方式初始化它并稍后设置框架)命令单击任何 UIView 声明,您将看到:
- (id)initWithFrame:(CGRect)frame; // default initializer
希望这可以帮助