Core data 如何在核心数据实体中存储MPMediaItemPropertyPersistentID
在核心数据中存储MPMediaItemPropertyPersistentID时遇到问题:出现以下错误: 指向整数转换的不兼容指针,将“NSNumber*_strong”发送到“unsigned long long”类型的参数 我的核心数据模型“profileItemsPersistentID”中的属性定义为整数64 提前谢谢 -保罗Core data 如何在核心数据实体中存储MPMediaItemPropertyPersistentID,core-data,ios5,xcode4.2,media-player,Core Data,Ios5,Xcode4.2,Media Player,在核心数据中存储MPMediaItemPropertyPersistentID时遇到问题:出现以下错误: 指向整数转换的不兼容指针,将“NSNumber*_strong”发送到“unsigned long long”类型的参数 我的核心数据模型“profileItemsPersistentID”中的属性定义为整数64 提前谢谢 -保罗 NSNumber *selectedSongID; - (void) mediaPicker: (MPMediaPickerController *) med
NSNumber *selectedSongID;
- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection {
[self dismissModalViewControllerAnimated: YES];
selectedSong = [[mediaItemCollection.items objectAtIndex: 0] valueForProperty:MPMediaItemPropertyTitle];
selectedArtist = [[mediaItemCollection.items objectAtIndex: 0] valueForProperty:MPMediaItemPropertyArtist];
selectedSongDuration = [[mediaItemCollection.items objectAtIndex: 0] valueForProperty:MPMediaItemPropertyPlaybackDuration];
//Incompatible pointer to integer conversion sending 'NSNumber *__strong' to parameter of type 'unsigned long long';
selectedSongID = [[mediaItemCollection.items objectAtIndex: 0] valueForProperty:MPMediaItemPropertyPersistentID];
NSLog(@"selectedSongID: %@",selectedSongID);
}
- (IBAction)barButtonSave:(id)sender
{
[profileItemsClass setValue:selectedSong forKey:@"profileItemsSong"];
[profileItemsClass setValue:selectedArtist forKey:@"profileItemsArtist"];
[profileItemsClass setValue:[NSNumber numberWithInt:songLength] forKey:@"profileItemsSongDurationInSeconds"];
[profileItemsClass setValue:[NSNumber numberWithUnsignedLongLong:selectedSongID] forKey:@"profileItemsPersistentID"];
[profileItemsClass setValue:[NSNumber numberWithInt:numberOfRows + 1] forKey:@"profileItemsSongOrder"];
NSError *error = nil;
NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
if (managedObjectContext != nil)
{
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
}
保罗
有时,错误消息会准确地说明问题所在。您的代码:
selectedSongID = [[mediaItemCollection.items objectAtIndex: 0] valueForProperty:MPMediaItemPropertyPersistentID];
虽然我尚未编译以下代码,但它解决了您的错误:
selectedSongID = [[[mediaItemCollection.items objectAtIndex: 0] valueForProperty:MPMediaItemPropertyPersistentID] unsignedLongLongValue];
安德鲁安德鲁。谢谢你的回复。我一定是昨晚很晚才发布的,因为上面的行没有显示的错误。再往下走。