gpt4 book ai didi

iOS 核心数据 managedObjectContext : No know class method for selector

转载 作者:行者123 更新时间:2023-12-01 18:58:00 25 4
gpt4 key购买 nike

可能很简单,但我的搜索都没有得到我需要的东西。

我在我的应用程序中使用 Core Data 来管理游戏的玩家和比赛。我的核心数据堆栈是完全通用的,并且在我的 AppDelegate 中。我正在尝试创建一个帮助类,它将根据搜索字符串返回一个实体(播放器)。当我尝试连接核心数据时,在设置 fetchRequest 时出现此错误。

选择器“managedObjectContext”没有已知的类方法

这是代码...
玩家搜索.h

#import <Foundation/Foundation.h>
#import "Player.h"

@interface PlayerSearch : NSObject

+ (Player *)searchForPlayerWithID:(NSString*)playerID;

@end

玩家搜索.m

导入“PlayerSearch.h”
#import "AppDelegate.h"

@interface PlayerSearch()
@property(nonatomic, strong) NSManagedObjectContext *managedObjectContext;

@end

@implementation PlayerSearch

-(NSManagedObjectContext*)managedObjectContext{
return [(AppDelegate*)[[UIApplication sharedApplication]delegate]managedObjectContext];
}

+ (Player *)searchForPlayerWithID:(NSString*)playerID
{

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
fetchRequest.entity = [NSEntityDescription entityForName:@"Player" inManagedObjectContext:[self managedObjectContext]];

...

return player;
}
@end

当我设置 fetchRequest.entity 的上下文时,错误出现了。这正是我在整个应用程序的 View Controller 中设置上下文的方式,它在那里工作正常......

我错过了什么?

最佳答案

您的 searchForPlayerWithID:方法是一个类方法,您正试图在 managedObjectContext 上调用实例方法 ( self )从该类方法中。

您可以通过更改 managedObjectContext 来解决此问题方法成为类方法:

+ (NSManagedObjectContext *)managedObjectContext
{
return [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}

关于iOS 核心数据 managedObjectContext : No know class method for selector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com