如何从另一个类访问一个方法而不在objective-c中创建对象?

emy*_*emy 1 cocoa objective-c ios

有没有办法从其他类访问方法而不在Objective-C中创建对象?

dan*_*anh 8

@interface APotentiallyBadIdea : NSObject

+ (void)potentiallySillyUnmooredMethod:(NSString *)string;

@end


@implementation APotentiallyBadIdea

+ (void)potentiallySillyUnmooredMethod:(NSString *)string {
    NSLog(@"ask yourself why this isn't on a real object %@", string);
}

@end
Run Code Online (Sandbox Code Playgroud)

像这样称呼它:

[APotentiallyBadIdea potentiallySillyUnmooredMethod:@"this might be ok if it's part of a more complete object implementation"];
Run Code Online (Sandbox Code Playgroud)


jus*_*tin 5

我怀疑你真的在寻找班级方法; Objective-C等同于其他语言的static方法.请参阅:类和实例方法有什么区别?

定义一个:

@implementation MONObject
+ (void)classMethod { ... }
@end
Run Code Online (Sandbox Code Playgroud)

正在使用: [MONObject classMethod]


如果您希望将实例方法作为可调用的C函数,请参阅class_getInstanceMethod或简单地说IMP imp = [MONClass instanceMethodForSelector:@selector(someSelector)];.