2014-01-16 17 views
0

有效載荷的錯誤,我收到以下錯誤:在有效載荷應用程序的名字在驗證我的iOS應用程序我得到在驗證我的iOS應用程序與蘋果商店這是關係到CoreData

「該應用程序引用非公開選擇。 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]; 

不過,我不知道這是非法的,產生的問題。 任何想法或幫助?

+0

[該應用程序引用非公開選擇器中的Payload/ .app/:decoder](http://stackoverflow.com/questions/19378484/the-app-references-non-public-selectors- in-payload-appname-app-app-name-dec) –

+0

您可以在iOS-Runtime-Headers項目的Apple框架中找到私有方法:https://github.com/nst/iOS-Runtime-Headers/blob/e6eb5f69b3a744b151e8e4a2f27cb1ce129b7812 /PrivateFrameworks/PhotoLibraryServices.framework/PLMoment.h –

回答

0

嘗試將該方法重命名爲與addAssetsObject不同的內容。如果有兩個具有相同名稱的選擇器,則通常會出現此錯誤。也許有一些蘋果方法或其他私人第三方庫使用相同的選擇器。

0

我在我的實體上有一個名爲「assets」的屬性,CoreData爲我生成了相同的addAssetsObject方法,並且我得到了同樣的錯誤。 -addAssetsObject碰巧也是一個私人的內部功能,我們的實體關係恰好與名稱相沖突。

只需刪除.h中的那些方法定義,並且不要在代碼中的任何地方調用它們。您可以用不同的方式將您的資產對象添加到學生對象。

我有一個Player實體,它與我的Asset實體有一對多的關係。 Asset實體與Player有一對一的關係。因此,我沒有打電話給[player addAssetsObject:asset],而是打電話給asset.player = player;,而且沒有調用任何不好的功能就建立了良好的關係。

相關問題