ios proj中Objective-C中的全局变量



我想为坐标创建全局变量UIView如何正确地使用语法?

我建议不要使用两个浮点,而是将坐标存储在专门为此创建的容器中:CGPoint

要全局使用它,可以将它添加到singleton(如@user3182143答案中所示),或者从类中公开它。

.m中,您可以将其定义为常量(在@interface@implementation之外),如下所示:

const CGPoint kMyCoordinate = {.x = 100, .y = 200};

为了让其他类能够使用它,您需要在.h中公开它,如下所示:

extern const CGPoint kMyCoordinate;

虽然在这种特殊情况下,通常使用CGPointMake(x,y)创建CGPoints,但我们必须使用缩写,因为否则Xcode会抱怨"initializer元素不是编译时常数"。

首先,您还需要创建NSObject类

指定类名GlobalShareClass

GlobalShareClass.h

#import <Foundation/Foundation.h>
@interface GlobalShareClass : NSObject 
{
}
@property (nonatomic) float xvalue
@property (nonatomic) float yvalue
+ (GlobalShareClass *)sharedInstance;
@end

GlobalShareClas.m

#import "GlobalShareClass.h"
static GlobalShareClass *_shareInstane;
@implementation GlobalShareClass
@synthesize xvalue;
@synthesize yvalue;
+ (GlobalShareClass *)sharedInstance 
{
  if (_shareInstane == nil)
  {
      _shareInstane = [[GlobalShareClass alloc] init];
  }
  return _shareInstane;
}

ViewController.h

#import <UIKit/UIKit.h>
#import "GlobalShareClass.h"
@interface ViewController : UIViewController
{
  GlobalShareClass *globalShare;
}
@end;

ViewController.m

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
  [super viewDidLoad];
  // Do any additional setup after loading the view, typically from a nib.
  globalShare = [GlobalShareClass sharedInstance];
  globalShare.xvalue = 50.0;
  globalShare.xvalue = 100.0;
} 

这里使用的正确方法可能是类级属性。请参阅此处了解更多信息。

相关内容

  • 没有找到相关文章

最新更新