【问题标题】:no known class method for selector confusion没有已知的选择器混淆类方法
【发布时间】:2023-03-25 02:22:01
【问题描述】:

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

这是我的ClassACoreDataHelper

#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

【问题讨论】:

    标签: ios ios5 core-data automatic-ref-counting


    【解决方案1】:

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

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

    上面调用代码中+insertAllObjectsForEntity:andContext:的声明没有最后一个

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

    【讨论】:

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

    喜欢:

    [ClassName method];
    

    代替:

    [instance method];
    

    在你的例子中是这样的:

    [ClassA pullOfflineDataWithContext];
    

    【讨论】:

      猜你喜欢
      • 2013-11-21
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多