Ошибка NSCollection: невозможно создать NSData из объекта NSImage - PullRequest
0 голосов
/ 31 января 2012

У меня есть NSCollectionView с 3 объектами, двумя NSTextFields и одним NSImageView.Я получаю свои данные, позволяя пользователю выбрать папку и затем читать содержимое этой папки.Я извлекаю имя файла, путь и снифф для типа (файл / папка) и, если это папка, получает ее значок (используя NSWorkspace) или, если это файл, его изображение.(все они должны быть файлами изображений, для проверки есть фильтр).

В любом случае, мои привязки кажутся правильными, поскольку текстовые поля заполняются, но NSImageView нет, и я получаю это сообщение об ошибке, когдаЯ пытаюсь передать NSImage моей модели.

//loop through the data
for (NSString* thisItemKey in fileManagerResults) { 

    //get our item data dictionary
    NSDictionary* thisItemData = [fileManagerResults objectForKey:thisItemKey];
    //get the item name
    NSString* itemName = [thisItemData objectForKey:@"Item Name"];

    //filter for hidden files 
    NSString *value = [itemName substringWithRange:NSMakeRange(0, 1)];
    if(![value isEqualToString:@"."]) {

        //make a new imageModel
        ImageModel* thisImageModel = [[ImageModel alloc] init];

        //add some data to our image model
        thisImageModel.itemName = itemName; 
        thisImageModel.itemType = [thisItemData objectForKey:@"Item Type"];
        thisImageModel.itemPath = [thisItemData objectForKey:@"Item Path"];
        thisImageModel.creationDate = [thisItemData objectForKey:@"Creation Date"];

        //get the file icon
        NSImage* theItemIcon;
        NSString* itemType = [thisItemData objectForKey:@"Item Type"];
        if ([itemType isEqualToString:@"Directory"]) { 
            theItemIcon = [[NSWorkspace sharedWorkspace] iconForFile:[thisItemData objectForKey:@"Item Path"]];

        } else { 
            theItemIcon = [[NSImage alloc] initWithContentsOfFile:[thisItemData objectForKey:@"Item Path"]];
        }

        thisImageModel.itemIcon = theItemIcon; 

        [tempArray addObject:thisImageModel]; 



    }

    //pass the data to our controller
    [self setControllerArray:tempArray];


}

Каждый раз, когда я запускаю это, я получаю следующее сообщение об ошибке:

Cannot create NSData from object NSImage 0x16074e10 Size={450, 350} Reps=(
NSBitmapImageRep 0x16075ba0 Size={450, 350} ColorSpace=NSCalibratedRGBColorSpace BPS=8 BPP=24 Pixels=450x350 Alpha=NO Planar=NO Format=0
) of class NSImage

Может ли кто-нибудь указать мне правильное направление, чтобы исправить это ... спасибо

1 Ответ

0 голосов
/ 31 января 2012

Решено, я выбирал данные для привязки, а не значение в IB.Да, я сижу здесь с большим стыдом.: D

...