注:我知道在SO上有类似的答案,但大多数答案已过时。我最近在一个项目中遇到了这个问题,我基本上是针对我自己的信息存储使用这种问与答方式,并希望这也会对某人有所帮助!
NSObject *newClass = [[YourClass alloc]init];
[newClass resumeTimer];
唯一有问题的副作用是您将获取新实例您的课程!
有时这无关紧要,并且可以正常工作,但是例如,当您的类具有诸如UIViewController的初始化程序时,这可能会导致您的应用程序崩溃。一种更好的方法是将要从外部调用的方法定义为
class method
!您可以在标头(类方法以“ +”开头)以及相应的实现中执行此操作!@interface YourClass : NSObject + (void)resumeTimer; @end
现在,您可以使用以下语法从您的应用程序和其他方法中调用该方法:
[YourClass resumeTimer];
您只需要知道一个副作用!在类方法的实现内部,您只能使用静态变量!因此,如果您的方法从外部处理任何信息,则需要像下面这样使此变量静态:
@implementation static NSTimeInterval seconds; + (void)resumeTimer{ NSLog(@"resume playing time: %f",seconds); } .... more code here .... @end
请在此处找到Xcode 11示例项目:GitHub sample code