创建单例对象时发送到 class 的无法识别的选择器

unrecognized selector sent to class when create a singleton object

我有一个共享class

.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'

这是为什么呢?我该如何解决这个问题?请帮助我

错误告诉编译器找不到您的选择器,更改您在界面中声明的 sharedManger 方法,现在区分大小写是原因..

您将方法声明为

+(ArraysClass *)SharedManager;

您实现了

+(ArraysClass *)sharedManager

并且您正在调用

[ArraysClass SharedManager]

在实现中使用 SharedManager 而不是 sharedManager.. 即 s 应该是大写的。

这里的情况是你的方法没有实现,因为它的名称不同。