0

私は Obj-c を初めて使用し、グローバル関数の使用方法を理解しようとしています。私は PHP API と対話し、これがセッション Cookie を設定する小さなプロジェクトに取り組んでいます。Cookie データを取得する方法を見つけました。最新のクッキー値...そして私は混乱しています...

Globals オブジェクト クラス「Globals.h」と「Globals.m」を作成しました。

関数を宣言して別のファイルからアクセスするにはどうすればよいですか?

私が今持っているもの、Globals.h

#import <Foundation/Foundation.h>
@interface Globals : NSObject

-(NSString*)GlobalString;

@end

および Globals.m:

#import "Globals.h"
@implementation Globals
-(NSString *)Globalstring
{
    return @"This is a global string!";
}
@end

これを使用したいファイルで Globals.h を #import する必要があることは理解していますが、この NSString 関数が表示されません。ヘルプ?私のような初心者向けのヒントやチュートリアルへの良いリンクはありますか?

4

3 に答える 3

2

メソッド名の前に使用-すると、インスタンス メソッドになります。NSString直接呼び出すことができるように、おそらくクラス/静的メソッドが必要です。+代わりにaを使用します。

+(NSString*)GlobalString;

そしてそれを使用するには:

NSString *foobar = [NSString GlobalString];

camelCaseまた、Objective-C のメソッドは、通常はそうではないことに注意してくださいCapsCase

于 2012-11-19T15:44:16.790 に答える
0

Globals のインスタンスを宣言してから、GlobalString を呼び出す必要があります。

GlobalString をクラス メソッドにする+ (NSString *)GlobalStringか、.c ファイルで C 関数を宣言することができます。

于 2012-11-19T15:45:48.260 に答える
0

すべてのグローバル変数を含むグローバル オブジェクトを作成できます。それを行う場合は、シングルトン パターンを見てください。そうすることで、globalString をsomeString = [Globals globalString];インスタンス メソッドではなくクラス メソッドとして設計することで取得できます。

ただし、アプリケーションデリゲートをグローバル文字の値と関数のコンテナーとして使用できます。いつでもデリゲートにアクセスできます

MyAppDelegate *myDelegate = (MyAppDelegate) [[UIApplication sharedApplication] delegate];

次に、グローバル関数にアクセスします。これは、MyAppDelegate のメソッドになりました。

returnValue = [myDelegate myGlobalFunction:theParameter];
于 2012-11-19T15:48:09.947 に答える