我有一个静态类,有两个方法来设置一个静态整数值。出于某种原因,当从我的代码的不同部分调用它时,似乎分配了两个内存实例。
代码:
MyLogger.h
@interface MyLogger : NSObject
+ (NSUInteger)loggingLevel;
+ (void)setLoggingLevel:(NSUInteger)loggingLevel;
@end
MyLogger.m
#import "MyLogger.h"
static NSUInteger myLoggingLevel = 0;
@implementation MyLogger
+ (NSUInteger)loggingLevel {
return myLoggingLevel;
}
+ (void)setLoggingLevel:(NSUInteger)loggingLevel {
myLoggingLevel = loggingLevel;
}
@end
当我从代码的不同部分设置和访问无符号整数值时,它具有不同的值和内存地址。
断点A的一些示例调试器输出:
(lldb) p myLoggingLevel
(NSUInteger) $1 = 32768
(lldb) p &myLoggingLevel
(NSUInteger *) $2 = 0x0000000110a57480
从断点B:
(lldb) p myLoggingLevel
(NSUInteger) $3 = 0
(lldb) p &myLoggingLevel
(NSUInteger *) $4 = 0x000000010f4733a8