2

Objective-Cでオブジェクトを作成せずに他のクラスからメソッドにアクセスする方法はありますか?

4

3 に答える 3

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

このように呼んでください:

[APotentiallyBadIdea potentiallySillyUnmooredMethod:@"this might be ok if it's part of a more complete object implementation"];
于 2012-11-16T15:31:57.280 に答える
5

あなたは本当にクラスメソッドを探しているのではないかと思います。staticObjective-Cは他の言語のメソッドと同等です。参照:クラスメソッドとインスタンスメソッドの違いは何ですか?

1つを定義するには:

@implementation MONObject
+ (void)classMethod { ... }
@end

使用中で:[MONObject classMethod]


インスタンスメソッドを呼び出し可能なC関数として使用する場合は、、class_getInstanceMethodまたは単にを参照してくださいIMP imp = [MONClass instanceMethodForSelector:@selector(someSelector)];

于 2012-11-16T15:30:06.130 に答える
2

+記号を使用して、静的メソッドにするメソッドを定義します。このメソッドには、次のようなクラス名でアクセスできます。

.hファイル内

+ (void) someMethod;

.mファイル内

+ (void) someMethod {}

別のファイルのクラス名を介して簡単にアクセスできるよりも

[ClassName someMethod];

注:そのクラスをインポートすることを忘れないでください。

于 2012-11-16T15:31:20.170 に答える