2016-08-01 40 views

Antwort

0

Zuerst müssen Sie NSObject Klasse

Geben Klassenname 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

zu schaffen
#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; 

} 
0

Wahrscheinlich wäre das richtige Ding hier eine Eigenschaft auf Klassenebene. Weitere Informationen finden Sie unter here.

1

Statt zwei Schwimmer zu verwenden, würde ich Koordinaten in einem Behälter empfehlen diese ausschließlich für die Speicherung gemacht: CGPoint.

Um es global zu verwenden, können Sie es zu einem Singleton hinzufügen (wie in Antwort @ user3182143), oder es von Ihrer Klasse aussetzen.

In Ihrem .m Sie es als Konstante definieren können (außerhalb sowohl der @interface und @implementation) wie folgt:

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

Um für andere Klassen der Lage sein, es zu benutzen, müssen Sie aussetzen es in der .h wie folgt:

extern const CGPoint kMyCoordinate;

Während Sie normalerweiseerstellen 0 mit CGPointMake(x,y) in diesem speziellen Fall müssen wir die Kurzschrift verwenden, weil sonst Xcode beklagt, dass das "Initialisierungselement keine Kompilierzeitkonstante ist".

+0

Ich denke, Ihre Antwort ist am bequemsten. Ich dachte an CGPoint. –

+0

in meinem ".h" ich füge @property hinzu (nicht atomisch, zuweisen) CGPoint * lastScrollOffset; und in meiner ".m" muss ich ihn anrufen und der aktuellen Position zuordnen, wie sieht meine Katze aus? –

+0

Wenn Sie Eigenschaften anstelle von Klassenkonstanten verwenden möchten, definieren Sie die Eigenschaft im '.h':' @property (nonatomic) CGPoint myCoordinate; ' Und in' .m': 'self.myCoordinate = CGPointMake (100 , 200); ' –