【问题标题】:How to store MPMediaItemPropertyPersistentID in Core Data Entity如何在核心数据实体中存储 MPMediaItemPropertyPersistentID
【发布时间】:2012-04-03 01:00:47
【问题描述】:

在我的核心数据中存储 MPMediaItemPropertyPersistentID 时遇到问题:我收到以下错误:

指向整数转换的不兼容指针将“NSNumber *__strong”发送到“unsigned long long”类型的参数;

我的核心数据模型“profileItemsPersistentID”中的属性定义为整数 64。

提前致谢

-保罗。

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();
        }
    }

}      

【问题讨论】:

    标签: core-data ios5 xcode4.2 media-player


    【解决方案1】:

    保罗,

    有时错误消息会准确说明问题所在。你的代码:

    selectedSongID = [[mediaItemCollection.items objectAtIndex: 0] valueForProperty:MPMediaItemPropertyPersistentID];
    

    虽然我没有编译下面的代码,但它解决了你的错误:

    selectedSongID = [[[mediaItemCollection.items objectAtIndex: 0] valueForProperty:MPMediaItemPropertyPersistentID] unsignedLongLongValue];
    

    安德鲁

    【讨论】:

    • 安德鲁。感谢您的回复。我一定是昨晚很晚才发布的,因为上面的行没有显示的错误。它进一步下降。
    猜你喜欢
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 2012-06-17
    • 1970-01-01
    相关资源
    最近更新 更多