2014-10-17 60 views
0

刚刚更新到优胜美地的Xcode和6.0.01这个代码将不再有效:升级到优胜美地对objectForKey MP3形象造成负面影响

- (NSImage *)songImage { 
    if (!_songImage) { 
     AVAsset *asset = [AVAsset assetWithURL:self.fileURL]; 
     for (AVMetadataItem *metadataItem in asset.commonMetadata) { 
      if ([metadataItem.commonKey isEqualToString:@"artwork"]){ 
       NSDictionary *imageDataDictionary = 
        (NSDictionary *)metadataItem.value; 
       NSData *imageData = [imageDataDictionary objectForKey:@"data"]; 
       _songImage =[[NSImage alloc] initWithData:imageData]; 
      } 
     } 
    } 
    if (!_songImage) { 
     return Nil; 
    } 

    return _songImage; 
} 

我不知道如果这个过程被替换或删除,但我现在得到一条消息:

2014-10-17 14:36:23.756 FSC Music[3317:122917] -[__NSCFData objectForKey:]: unrecognized 
    selector sent to instance 0x600000241cb0 2014-10-17 14:36:23.764 
FSC Music[3317:122917] -[__NSCFData objectForKey:]: unrecognized selector sent to instance 
    0x600000241cb0 

需要研究一个解决方案,但想问问是否有其他人遇到过这个?

回答

0

我更改为以下代码以使其再次运行。

-(NSImage *)songImage { 

    if (!_songImage) { 
     AVAsset *asset = [AVAsset assetWithURL:self.fileURL]; 
     NSArray *metadata = [asset commonMetadata]; 
     for (AVMetadataItem *item in metadata) { 
      if ([item.commonKey isEqualToString:@"artwork"]){ 

       NSData *thePix = (NSData *)item.value; 

       _songImage =[[NSImage alloc] initWithData:thePix]; 
      } 
     } 
    } 
    if (!_songImage) { 
     return Nil; 
    } 

    return _songImage; 
} 
+0

测试新的代码上小牛OSX 10.9.5 SDK 6.0.1(6A317),它失败: 二〇一四年十月二十零日07:49:57.694 FSC-ADAP [62467:303] - [__ NSCFDictionary长度]:无法识别的选择器发送到实例0x610000670c40 2014-10-20 07:49:57.695 FSC-adap [62467:303] - [__ NSCFDictionary length]:无法识别的选择器发送到实例0x610000670c40 2014-10-20 07:49: 57.698 FSC-ADAP [62467:303]( \t 0的CoreFoundation 0x00007fff96a4125c __exceptionPreprocess + 172 \t 1 libobjc.A.dylib 我假定现在我将要测试的版本b在决定走哪条路之前。 – 2014-10-20 11:57:09