【问题标题】:Class method from another class is never called永远不会调用来自另一个类的类方法
【发布时间】:2013-08-12 18:27:51
【问题描述】:

我正在尝试从另一个类中的一个类调用方法。

    @interface example : NSObject 
         -(void)displayString:(NSString*)str;
    @end

    @implementation example
         -(void)displayString:(NSString*)str
         {
             NSLog(@"The string:%@",str);
         }
    @end
   // callExample.h
   @interface callExample:UIViewController
        @property (nonatomic, strong) example *ex;
   @end

//在按下这个按钮时调用函数displayString。

   // callExample.m
   @implementation callExample

       - (IBAction)btnPressed:(id)btn
       {
          [self.ex displayString:@"sampleTEXT"];
       }
   @end

所以当我调试[self.ex displayString:@"sampleTEXT"]; 时,这行代码不会调用示例类中的函数。我认为我做的一切都是正确的。我错过了一些东西。我哪里错了?

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: objective-c class methods xcode4.5 user-defined-functions


    【解决方案1】:

    首先,displayString 不是类方法,而是实例方法。其次,与此相关的是,您无需创建 example 类的实例来调用该方法。

    现在让我们把它放在callExample 类的viewDidLoad 方法中(你不会说实例是否已经存在)。比如:

    self.ex = [[example alloc] init];
    

    另外,请检查命名约定:here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      相关资源
      最近更新 更多