Objective c 在classA中使用NSTimer时,则可以';不要从其他地方调用任何方法

Objective c 在classA中使用NSTimer时,则可以';不要从其他地方调用任何方法,objective-c,multithreading,nstimer,Objective C,Multithreading,Nstimer,下面是我调用的一段代码,用于运行计时器以调用classA中的“tick:”方法(它不在主线程中调用): 定时器工作得很好。 但当尝试在同一线程中访问“doSomething”方法(类A的同一实例)时,方法“doSomething”不会调用 为什么??如何解决这个问题 如何调用选择器doSomething: 无论如何,您应该尝试[classAinstance performSelectorOnMainThread:@selector(doSomethingOnMainThread:)waitunt

下面是我调用的一段代码,用于运行计时器以调用classA中的“tick:”方法(它不在主线程中调用):

定时器工作得很好。 但当尝试在同一线程中访问“doSomething”方法(类A的同一实例)时,方法“doSomething”不会调用


为什么??如何解决这个问题

如何调用选择器
doSomething:


无论如何,您应该尝试
[classAinstance performSelectorOnMainThread:@selector(doSomethingOnMainThread:)waituntldone:YESORNO]

您能否详细说明您关于“doSomething”的陈述?它与计时器调用有何关系计时器正在调用“滴答”方法。。我有点不明白你在解释什么1.classA是单身汉。“doSomething”是我调用的方法:[[classA sharedClassA]doSomething];“doSomething”是一个空方法,它什么也不做。但是它不会调用。(这个init方法不会创建任何单例对象。当你调用[classA sharedClassA]“doSomthing”方法是由另一个对象在同一个线程中从另一个地方调用时,“doSomthing”只是一个存根,而“sharedClassA”会返回(可能是零)。(空方法)。我同意这看起来不像一个单例类。你能提供更多关于你的问题的信息吗。。。
    - (id)init {

        self = [super init];

        if (self != nil) {

        self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0f 
target:self selector:@selector(tick:) userInfo:nil repeats:YES];

        NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop];
        [currentRunLoop run];
        }

      return self;
    }