gdu*_*ubs 6 iphone objective-c
我来自一个C#背景,你初始化一个类,然后像这样返回自己
public class MyClass{
public int Id;
public string Name;
}
MyClass classInstance = new MyClass();
:
:
Run Code Online (Sandbox Code Playgroud)
我知道c#与目标c不同,但我正试图找到一种方法来轻松理解客观c如何使转换变得更容易.并找出最佳实践.
无论如何,我的问题是为什么你必须创建一个方法并返回一个"id"而不是返回它自己的类型?像这样:
- (id)initWithID:(NSInteger)id name:(NSString *)name
{
self = [self init];
if (self) {
self.ID = id;
self.name = name;
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的时间
jms*_*617 11
id由于继承,您在初始化方法中返回类型的对象.
可以这样想:你有一个阶级对象Foo.它有一个名为的init方法initWithWidgets.现在,您创建一个子类Foo并命名它Bar.根据继承规则,它可以访问该initWithWidgets方法.如果返回类型initWithWidgets是Foo,那么您的Bar类将无法使用它来初始化自己!返回类型将与您尝试实例化的对象不同.因此,如果您使用id,您会说"此对象的返回类型可以是任何类型",并且您对子类是安全的!
| 归档时间: |
|
| 查看次数: |
1774 次 |
| 最近记录: |