验证ios应用程序时,我收到与CoreData相关的负载错误

验证ios应用程序时,我收到与CoreData相关的负载错误,ios,objective-c,core-data,Ios,Objective C,Core Data,在使用apple store验证我的ios应用程序时,我遇到以下错误: “应用程序引用有效负载appname.app/appname:AddAssetObject中的非公共选择器” 在我的项目中,AddAssetObject是CoreData实体类中的选择器。我从我的一个班级调用它来保存一些数据: @interface Students : NSManagedObject @property (nonatomic, retain) NSString * firstname; @property

在使用apple store验证我的ios应用程序时,我遇到以下错误:

“应用程序引用有效负载appname.app/appname:AddAssetObject中的非公共选择器”

在我的项目中,AddAssetObject是CoreData实体类中的选择器。我从我的一个班级调用它来保存一些数据:

@interface Students : NSManagedObject

@property (nonatomic, retain) NSString * firstname;
@property (nonatomic, retain) NSString * surname;
@property (nonatomic, retain) NSSet *assets;
@end

@interface Students (CoreDataGeneratedAccessors)

- (void)addAssetsObject:(Evidence *)value;
- (void)removeAssetsObject:(Evidence *)value;
- (void)addAssets:(NSSet *)values;
- (void)removeAssets:(NSSet *)values;

@end
我在一个代码中调用了addAssetObject:

[self.student addAssetsObject:self.evidence];
然而,我不确定这是否是非法的,是否产生了问题。
有什么想法或帮助吗?

尝试将该方法重命名为与AddAssetObject不同的名称。如果有两个同名选择器,则通常会出现此错误。可能有一些Apple方法或其他私有第三方库使用相同的选择器。

我的实体上也有一个名为“资产”的属性,CoreData为我生成了相同的AddAssetObject方法,我得到了相同的错误
-AddAssetObject
恰好也是一个私有的内部函数,我们的实体关系恰好因为名称而与之冲突

只需删除.h中的那些方法定义,不要在代码中的任何地方调用它们。您可以以不同的方式将资产对象添加到学生对象


我有一个
玩家
实体,它与我的
资产
实体有一对多的关系。
资产
实体与
玩家
有一对一的关系。因此,我没有调用
[player addassetobject:asset]
而是调用了
asset.player=player
和关系建立得很好,没有调用任何不好的函数。

您可以在iOS运行时标题项目的Apple框架中找到私有方法的可能副本: