代码之家  ›  专栏  ›  技术社区  ›  suse

调用方法不同于Objective-C中的@selector

  •  -1
  • suse  · 技术社区  · 14 年前

    我能这样做吗??

    [tis_obj authenticate:self action:@selector([classB method]:)
                  accName:@"BOOK" User:@"User"];
    

    是否可以调用不同类形式的方法@selector tag??或者方法应该总是在同一个类中?

    4 回复  |  直到 14 年前
        1
  •  4
  •   kennytm    14 年前

    不,你不能。打电话给 -[classB method:] ,authenticate:参数必须具有classB实例,例如。

    classB* b = [[clasB alloc] init];
    [tis_obj authenticate:b action:@selector(method:) …];
    self.b = b;
    [b release];
    
        2
  •  2
  •   dreamlax    14 年前

    看起来你想要 tis_obj 使用 method classB . 我不知道是什么 是的,但我知道你在争论 self 在那里。也许你真正想要的是:

    [tis_obj authenticate:classB
                   action:@selector(method:)
                  accName:@"BOOK"
                     User:@"User"];
    

    这大概意味着 会在某一点上表现出 [classB method:someArg] .

        3
  •  1
  •   Chuck    14 年前

    选择器只是一个名字。方法调用中的选择器 [someObject foo:5] 只是 foo:

        4
  •  1
  •   Philippe Leybaert    14 年前

    传递给@selector()的内容没有类名。选择器定义只是一个方法名,因此这将起作用:

    [tis_obj authenticate:self action:@selector(method:)
              accName:@"BOOK" User:@"User"];
    

    (如果“方法:”是在你的课程中定义的)