.h文件
#import <Foundation/Foundation.h>
@interface globalFunction : NSObject{
int nbr;
}
@property (nonatomic) NSInteger myInt;
+(void)eventCount:(NSString*) eventName;
@end
.m文件
@synthesize myInt;
+(void)eventCount:(NSString *)eventName{
myInt ++;
NSLog(@"Event name %@ and the count %d",eventName, myInt);
}
但是这给了我在类方法中访问的实例变量myInt的错误。
当我搜索谷歌时,当我将我的全局方法符号(+)更改为实例函数( - )
时,结果证明问题已解决但我需要一个全局方法,我可以在任何viewController中使用它来帮助我计算会话期间特定事件发生的次数。
我如何处理此事?
答案 0 :(得分:0)
你应该是一个单例对象,它将在所有对象之间存活并共享。然后你可以把一个柜台作为财产,看一下这篇文章:http://www.galloway.me.uk/tutorials/singleton-classes/
希望它有所帮助!
答案 1 :(得分:0)
将singleton Class用于全局计数器:,如:
Interface: (in .h)
@interface globalFunction : NSObject
{
int nbr;
}
@property (nonatomic, assign) NSInteger myInt;
+ (instancetype)sharedInstance;
- (void)eventCount:(NSString*) eventName;
@end
Implementation: (in .m)
@implementation globalFunction
#pragma mark - Singleton Class instance
/*
* Singelton instance of globalFunction
*/
+ (instancetype)sharedInstance {
static globalFunction *_instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance = [[globalFunction alloc] init];
});
return _instance;
}
- (void)eventCount:(NSString *)eventName{
_myInt ++;
NSLog(@"Event name %@ and the count %d",eventName, _myInt);
}
@end
可以使用以下方式访问:
[[globalFunction sharedInstance] eventCount:@"Ev"];