我想为坐标创建全局变量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;
}
这里使用的正确方法可能是类级属性。请参阅此处了解更多信息。