Изображение спрайта не загружается

Я работаю над игрой Sprite Kit. Все работало нормально, пока из ниоткуда Xcode не решил прекратить загрузку определенного изображения спрайта и вернуть его в журнал консоли:

Error loading /System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib:  dlopen(/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib, 262): no suitable image found.  Did find:
/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib: mach-o, but not built for iOS simulator
2015-11-25 15:26:07.435 Project3[5843:800423] Cannot find function pointer IOHIDLibFactory for factory 13AA9C44-6F1B-11D4-907C-0005028F18D5 in CFBundle/CFPlugIn 0x7fba686b5a50 </System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin> (bundle, not loaded)
2015-11-25 15:26:07.435 Project3[5843:800423] Error loading /System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib:  dlopen(/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib, 262): no suitable image found.  Did find:
/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib: mach-o, but not built for iOS simulator
2015-11-25 15:26:07.436 Project3[5843:800423] Cannot find function pointer IOHIDLibFactory for factory 13AA9C44-6F1B-11D4-907C-0005028F18D5 in CFBundle/CFPlugIn 0x7fba686b5a50 </System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin> (bundle, not loaded)
2015-11-25 15:26:07.436 Project3[5843:800423] Error loading /System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib:  dlopen(/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib, 262): no suitable image found.  Did find:
/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib: mach-o, but not built for iOS simulator
2015-11-25 15:26:07.436 Project3[5843:800423] Cannot find function pointer IOHIDLibFactory for factory 13AA9C44-6F1B-11D4-907C-0005028F18D5 in CFBundle/CFPlugIn 0x7fba686b5a50 </System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin> (bundle, not loaded)

Код, который я использовал для добавления изображения, был следующим:

self.superball = [SKSpriteNode spriteNodeWithImageNamed:@"sbstore2.png"];
    self.superball.position = CGPointMake(CGRectGetMidX(self.frame)-200,CGRectGetMidY(self.frame));
    [self addChild:self.superball];

Что мне делать, чтобы устранить эту ошибку? Я использую Xcode 7.1.1, и это было впервые замечено после того, как я обновился до этого.


person master45    schedule 25.11.2015    source источник
comment
Вы пытались очистить проект?   -  person Knight0fDragon    schedule 26.11.2015
comment
Кроме того, я не думаю, что вам следует включать расширение с ImageNamed   -  person Knight0fDragon    schedule 26.11.2015
comment
Очистка проекта не работает. И я хочу, чтобы спрайт был изображением, так есть ли другой способ сделать узел спрайта изображением без расширения spriteNodeWithImageNamed?   -  person master45    schedule 26.11.2015
comment
бесполезно [SKSpriteNode spriteNodeWithImageNamed:@"sbstore2"];   -  person Knight0fDragon    schedule 26.11.2015
comment
Не работает. Это ошибка с Xcode?   -  person master45    schedule 26.11.2015


Ответы (1)


Я не думаю, что это ошибка. Как сказал KnightOfDragon, вы не должны включать расширение, используя ImageNamed, а также я рекомендую использовать Clean

self.superBall = [SKSpriteNode spriteNodeWithImageNamed:@"sbstore2"];

Вместо использования инициализатора выше вы можете просто установить текстуру вашего узла.

self.superBall.texture = [SKTexture textureWithImageNamed:@"sbstore2"];

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

[self.superBall runAction:[SKAction setTexture:[SKTexture textureWithImageNamed:@"sbstore2"]]];

Если ничего из этого не работает, вам следует дважды проверить правильность имени вашего изображения. Если вы добавляете просто перетаскиванием в проект, убедитесь, что вы отметили add to targets и Destination: copy items if needed

Также здесь есть дополнительная информация об этих ошибках: Ошибка загадочной консоли с IOHIDFamily

person Darvydas    schedule 26.11.2015
comment
Кажется, теперь это работает. Спасибо! Хотя я использовал расширения в своем коде, начиная с Xcode 5, и тогда он работал нормально. Почему нельзя использовать расширения? - person master45; 26.11.2015
comment
developer.apple.com/library/ios/documentation/UIKit/Reference/ В iOS 4 и более поздних версиях, если файл имеет формат PNG, указывать расширение имени файла .PNG не требуется. До iOS 4 необходимо указывать расширение имени файла. - person Darvydas; 26.11.2015
comment
@ master248 вы можете использовать расширение, но не обязательно. - person Darvydas; 26.11.2015
comment
Спасибо, что прояснили это. Консоль по-прежнему возвращает ошибки, но теперь появляется изображение. Возможно, он был просто неуместен, потому что я также изменил его положение. Я изучил ошибку консоли Mystery с вопросом IOHIDFamily. stackoverflow.com/questions/29785320/ до хоть сюда приезжай. - person master45; 26.11.2015
comment
В моем старом проекте у меня тоже есть это, это не имеет никакого значения, я даже отправил это приложение, и оно было одобрено. - person Darvydas; 26.11.2015