【问题标题】:how to access parents method through subclass object in objective c如何通过目标c中的子类对象访问父方法
【发布时间】:2014-09-26 12:02:19
【问题描述】:

Class1.h:

@interface Class1 : NSObject
-(void) update;
@end
@interface Class1 (Private) -(void) private1; -(void) private2; @end

Class1.m:

@implementation Class1

-(void) update
{
    [self private1];
    [self private2];
}

-(void) private1
{
    // some code
NSLog(@"i used in class2"); }

-(void) private2
{
    // another code
NSLog(@"me too used in class2"); }

@end

Class2.h:

@interface Class2 : Class1

@end

Class2.m:

@implementation Class2

@end

main.m:

int main()
{

Class2 *class=[[Class2 alloc]init];

[class update];

}

问题是:我继承了 class2:class1 像这样 ,现在我想通过class2对象“class”访问class1中存在的方法更新。 但我给我警告..为什么会这样?? 为什么我不访问那个? 请用完整的解释告诉我这一点

【问题讨论】:

  • 应该可以。确切的警告是什么?
  • 始终包含 exact 和 complete 错误消息。
  • 现在一切正常......我不知道问题是什么......??现在一切正常

标签: ios objective-c iphone objective-c-runtime


【解决方案1】:

您的代码应该可以工作;你可以通过子类访问update。

如果没有确切的错误消息,我猜是编译器不知道Class2,因为您没有在main.m 中添加以下内容:

#import "Class2.h"

(就此而言,#import "Class1.h" Class2.h)。

【讨论】:

    【解决方案2】:
    Class2 *class=[[Class alloc]init];
    

    你应该在这里使用Class2 而不是Class。可能是笔误。另一件事Class 是 ObjC 中的一种数据类型。可能是它对你的警告。喜欢

    Class2 *class=[[Class2 alloc]init];
    

    【讨论】:

    • 对不起...输入错误有class2
    • 然后提及警告信息?
    • 不要使用Class 作为类名,除非你是认真的。
    猜你喜欢
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多