这是我的模特课LevelInformationModel
。
@interface LevelInformationModel : NSObject
@property NSInteger levelCompleted;
+(id)sharedModel;
@end
#import "LevelInformationModel.h"
@implementation LevelInformationModel
@synthesize levelCompleted;
/* Return singleton model */
+ (id)sharedModel {
static LevelInformationModel *sharedModel = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedModel = [[self alloc] init];
});
return sharedModel;
}
- (id)init {
self = [super init];
if (self) {
self.levelCompleted = 0;
}
return self;
}
@end
以下是我如何全部使用它(在GameViewController
类中)。我已导入LevelInformationModel.h
。
NSInteger currentLevel = [LevelInformationModel sharedModel].levelCompleted;
但在levelCompleted
属性之上是错误Property 'levelCompleted
在类型' id'`上找不到。任何想法都会很棒。
答案 0 :(得分:2)
那是因为你的方法正在返回一个id。
将其更改为此
var assembly = AssemblyDefinition.ReadAssembly(inputPath);
var module = assembly.MainModule;
var sorted = module.Types.OrderBy(t => t.FullName).ToList();
module.Types.Clear();
foreach (var type in sorted)
{
module.Types.Add(type);
}
assembly.Write(outputPath);
答案 1 :(得分:0)
你应该使用
+(instancetype)sharedModel;
"肯定有一个好处。当您使用' id'时,您基本上不会进行任何类型检查。使用instancetype,编译器和IDE知道返回的是什么类型的东西,并且可以更好地检查代码并更好地自动完成。"
Would it be beneficial to begin using instancetype instead of id?