Ios 没有用于选择器混淆的已知类方法

Ios 没有用于选择器混淆的已知类方法,ios,ios5,core-data,automatic-ref-counting,Ios,Ios5,Core Data,Automatic Ref Counting,我知道这是一个新手问题,但我很困惑。我应该如何从另一个类调用类方法,还是不应该 这是我的ClassA和CoreDataHelper: #import <Foundation/Foundation.h> @interface ClassA : NSObject { } @property (nonatomic, retain) NSString * sessionId; @property (nonatomic, retain) NSString * token; @proper

我知道这是一个新手问题,但我很困惑。我应该如何从另一个类调用类方法,还是不应该

这是我的
ClassA
CoreDataHelper

#import <Foundation/Foundation.h>

@interface ClassA : NSObject {

}

@property (nonatomic, retain) NSString * sessionId;
@property (nonatomic, retain) NSString * token;
@property (nonatomic, retain) NSString * userid;

+ (void) pullOfflineDataWithContext:(NSManagedObjectContext *)managedObjectContext ;
@end


#import "ClassA.h"
#import "CoreDataHelper.h"

@implementation ClassA


+ (void) pullOfflineDataWithContext:(NSManagedObjectContext *)managedObjectContext  {

    // get Contacts, Accounts, Meetings into Core Data

     bool asd =[CoreDataHelper insertAllObjectsForEntity:@"Contact" andContext:managedObjectContext initCoreData:jsonDict];

}
@end

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@interface CoreDataHelper : NSObject

//For inserting objects
+(BOOL)insertAllObjectsForEntity:(NSString*)entityName andContext:(NSManagedObjectContext *)managedObjectContext;

@end
#导入
@接口ClassA:NSObject{
}
@属性(非原子,保留)NSString*sessionId;
@属性(非原子,保留)NSString*标记;
@属性(非原子,保留)NSString*userid;
+(void)pullOfflineDataWithContext:(NSManagedObjectContext*)managedObjectContext;
@结束
#导入“ClassA.h”
#导入“CoreDataHelper.h”
@实现类A
+(void)pullOfflineDataWithContext:(NSManagedObjectContext*)managedObjectContext{
//将联系人、客户、会议纳入核心数据
bool asd=[CoreDataHelper insertAllObjectsForEntity:@“Contact”和context:managedObjectContext initCoreData:jsonDict];
}
@结束
#进口
#进口
@接口CoreDataHelper:NSObject
//用于插入对象
+(BOOL)insertAllObjectsForEntity:(NSString*)entityName和Context:(NSManagedObjectContext*)managedObjectContext;
@结束
类似于:

[ClassName method];
而不是:

[instance method];
在您的示例中,将是:

[ClassA pullOfflineDataWithContext];

您正在以正确的方式从另一个类方法调用一个类方法,但方法签名与声明的方法签名不同

bool asd =[CoreDataHelper insertAllObjectsForEntity:@"Contact" 
                                         andContext:managedObjectContext 
                                       initCoreData:jsonDict];
+insertAllObjectsForEntity:和Context:的声明在上述调用代码中没有最后一个声明

+(BOOL)insertAllObjectsForEntity:(NSString*)entityName 
                      andContext:(NSManagedObjectContext *)managedObjectContext;

但编译器不应该警告我“选择器没有已知的类方法”@tugce好吧,实际上编译器是正确的,根据Objective-C规则:+insertAllObjectsForEntity:andContext:initCoreData:生成了一个完整的方法签名,该签名与C中的“symbol”语义非常相似。