0

我对 Obj-c 很陌生,我正在尝试弄清楚如何使用全局函数。我正在做一个小项目,我在其中与 PHP API 交谈,这设置了一个会话 cookie,我发现了如何获取 cookie 数据,现在我想通过制作一个 NSString 函数来使其更有效最新的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

我知道我必须在要使用它的文件中#import Globals.h,但我看不到这个 NSString 函数。帮助?像我这样的初学者的提示和教程的好链接?

4

3 回答 3

2

在方法名称之前使用-使其成为实例方法。您可能需要一个类/静态方法,以便可以直接调用它NSString。使用 a+代替:

+(NSString*)GlobalString;

并使用它:

NSString *foobar = [NSString GlobalString];

另请注意,Objective-C 方法通常camelCase不是CapsCase.

于 2012-11-19T15:44:16.790 回答
0

您需要声明一个 Globals 的实例,然后调用 GlobalString:

您可以将 GlobalString 设为类方法+ (NSString *)GlobalString或在 .c 文件中声明 C 函数。

于 2012-11-19T15:45:48.260 回答
0

您可以创建一个包含所有全局变量的全局对象。如果您这样做,请查看单例模式。通过这样做,如果您将 globalStringsomeString = [Globals globalString];设计为类方法而不是实例方法,则可以获取它。

但是,您可以将应用程序委托用作全局字符的值和函数的容器。您始终可以通过以下方式访问您的委托

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

然后访问您的全局函数 - 现在是 MyAppDelegate 的一个方法:

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