2013-03-21 3 views
-1

Я новичок в разработке iphone, и у меня возникает странная проблема при попытке реализовать Glass Buttons (found here). Моя сборка завершилась неудачно, потому что я получаю «непредвиденную ошибку @ в программной ошибке» внутри файла MOGlassButtons.m. Я не смог найти ничего о том, как решить эту проблему. Любая помощь приветствуется.Проблема с использованием кнопки «Стекло» UIButton

MOGlassButton.m

self.gradientLayer1.colors = @[(id)[MO_RGBACOLOR(255, 255, 255, 0.45) CGColor], (id)[MO_RGBACOLOR(255, 235, 255, 0.1) CGColor]]; //<--"unexpected @ in program error" 

self.gradientLayer2.colors = @[(id)[MO_RGBACOLOR(205, 205, 205, 0) CGColor], (id)[MO_RGBACOLOR(235, 215, 215, 0.2) CGColor]]; //<--"unexpected @ in program error" 

EDIT

#import "MOGlassButton.h" 

// Courtesy of https://github.com/facebook/three20 
#ifndef MO_RGBCOLOR 
#define MO_RGBCOLOR(r,g,b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1] 
#endif 
#ifndef MO_RGBCOLOR1 
#define MO_RGBCOLOR1(c) [UIColor colorWithRed:c/255.0 green:c/255.0 blue:c/255.0 alpha:1] 
#endif 
#ifndef MO_RGBACOLOR 
#define MO_RGBACOLOR(r,g,b,a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a] 
#endif 
+0

Не могли бы вы показать нам MO_RGBACOLOR? Если это, как я полагаю, макрос, скорее всего, это преступник. –

+0

@JuliusMaximilianSteen, пожалуйста, проверьте мое редактирование –

+0

вы не можете просто отличить CGColorRef от id, почему бы вам просто не сохранить UIColor –

ответ

1

Ваша проблема, вероятно, устаревшая версия Xcode вы работаете. В вашем коде используются литералы Objective-C (часть @[…]), которые поддерживаются с Xcode 4.4 и, следовательно, недействительны в более ранних версиях. (см. What are the details of "Objective-C Literals" mentioned in the Xcode 4.4 release notes?)

Модернизация должна устранить вашу проблему.

Редактировать

В качестве альтернативы, хотя я сильно рекомендую обновления, вы можете использовать следующее.

[NSArray arrayWithObjects: (id)[MO_RGBACOLOR(255, 255, 255, 0.45) CGColor], (id)[MO_RGBACOLOR(255, 235, 255, 0.1) CGColor], nil]; 
Смежные вопросы