Objective-C: How Can I Access String Variable As a

2019-01-27 04:31发布

I am new to iPhone development. I want to access a string variable in all the class methods, and I want to access that string globally. How can I do this?

Please help me out.

4条回答
Lonely孤独者°
2楼-- · 2019-01-27 05:17

Leaving aside the issue of global variables and if they are good coding practice...

Create your string outside of any Objective-C class in a .m file in your project:

NSString *myGlobalString = @"foo";

Then put the declaration in a header file that is included by every other file that wants to access your string:

extern NSString *myGlobalString;

OK, well I can't leave it entirely aside. Have you considered putting your "global" string somewhere else, perhaps inside your application delegate as a (possibly read-only) property?

查看更多
SAY GOODBYE
3楼-- · 2019-01-27 05:17

The preferred methods for creating a global variable are:

  1. Create a singleton class that stores the variables as an attributes.
  2. Create a class that has class methods that return the variables. Put the class interface in the universal header so all classes in the project inherit it.

The big advantage of method (2) is that it is encapsulated and portable. Need to use classes that use the global in another project? Just move the class with the variables along with them.

查看更多
Animai°情兽
4楼-- · 2019-01-27 05:23

I posted an article about my methodology for doing this:

http://www.pushplay.net/2011/02/quick-tip-global-defines/

This is something I primarily use for notification keys. Creating a globals.h file and adding it to the (your_project_name)_Prefix.pch file will ensure it is accessible globally...

查看更多
虎瘦雄心在
5楼-- · 2019-01-27 05:30

You can achieve that by implementing getter and setters in the delegate class.

In delegate .h file

Include UIApplication delegate

 @interface DevAppDelegate : NSObject <UIApplicationDelegate>

  NSString * currentTitle;

 - (void) setCurrentTitle:(NSString *) currentTitle;
 - (NSString *) getCurrentTitle; 

In Delegate implementation class .m

 -(void) setCurrentLink:(NSString *) storydata{
currentLink = storydata;

}

-(NSString *) getCurrentLink{
if ( currentLink == nil ) {
    currentLink = @"Display StoryLink";
}
return currentLink;
}

So the variable you to assess is set in the currentlink string by setters method and class where you want the string ,just use the getter method.

All the best

查看更多
登录 后发表回答