我有一个共享班级
.h
`
#import <Foundation/Foundation.h>
@interface ArraysClass : NSObject
@property(nonatomic,copy)NSMutableArray *mutArraySongs;
+(ArraysClass *)SharedManager;
@end
`
.m
`
#import "ArraysClass.h"
@implementation ArraysClass
static ArraysClass *sharedService = nil;
#pragma mark -
#pragma mark Singleton Methods
+(ArraysClass *)sharedManager {
if(sharedService == nil){
sharedService = [[super allocWithZone:NULL] init];
}
return sharedService;
}
- (id)copyWithZone:(NSZone *)zone {
return self;
}
-(id)init {
self = [super init];
if (self != nil) {
// initialize stuff here
// user=[LoggedUser sharedManager];
}
return self;
}
@end
`
在我的ViewController
我需要从中创建一个对象。我确实喜欢这个
`
#import "ArraysClass.h"
ArraysClass *arrayClass=[ArraysClass SharedManager];
`
但是这最后一行给了我这样的例外
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[ArraysClass SharedManager]: unrecognized selector sent to class 0x13e9c8'
为什么?我该如何解决这个问题?请帮帮我
答案 0 :(得分:0)
错误告诉编译器找不到您的选择器,更改您在界面中声明的sharedManger方法,现在区分大小写是原因..
答案 1 :(得分:0)
您声明方法为
+(ArraysClass *)SharedManager;
您已实施
+(ArraysClass *)sharedManager
你正在调用
[ArraysClass SharedManager]
在实施中使用SharedManager
而不是sharedManager ..即 s 应为大写。
这里的情况是你的方法没有实现,因为它的名字不同。