2014-09-20 130 views
0

你好,我试图重写像Objective-C的覆盖功能迅速

class A { 
class func myValue()->NSString? { 

    return nil 
} 
} 

然后

class B: A { 
override class func myValue()->NSString? { 
    return "username" 
} 
} 

但仍不能获得价值回报为零

任何想法如何使用?

感谢

+0

这是在一个子类? – erdekhayser 2014-09-20 18:26:56

+0

是看到上面的实现 – sger 2014-09-20 18:33:59

回答

1

如果您呼叫A.myValue(),返回值将是零。

如果您致电B.myValue(),返回值将是“用户名”。

重写的方法只适用于覆盖它的类。它不影响超类。如果要创建一个名为C的B的子类,并使用不同的实现,那么超类的返回类型保持不变。