2014-04-01 30 views
0

我得到试图使用从Chartboost的方法时警告:编译器错误有关冲突的参数类型和不兼容的转换为同一方法

冲突的参数类型实行“didCacheInterstitial:”:“CBLocation “VS '的NSString * __强'

在下面的方法:

- (void)didCacheInterstitial:(NSString *)location { 
NSLog(@"interstitial cached at location %@", location); 
} 

不兼容的指针整数转换发送 '的NSString *' 到类型的参数“CBLocation'`

当执行以下操作:

[cb cacheInterstitial:@"Main Menu"]; 

这里有什么问题?

回答

1

此警告旨在鼓励开发人员使用头文件中CBLocation枚举中找到的预设位置。

但是,最新的Chartboost SDK向后兼容通过NSString参数的插页式调用。

例如,下面的调用将尽管抛出一个警告,做工精细:

[[Chartboost sharedChartboost] cacheInterstitial:@"foobar"];

SDK中的一些挂羊头卖狗肉会自动施放@“foobar的”作为一项长期的,所以您可以忽略警告。

关于日志记录,您可以考虑使用NSLog(@"%@", location);来确保位置的人类可读输出,而不是难以理解的数字。如上所述,尽管有警告,但这仍然有效。

完全披露:我为Chartboost工作。

+0

谢谢你的回答! – KingPolygon

+0

所以你使用文字字符串的地址作为“索引”......当某人稍后动态地构造字符串而不是传递字面值时会发生什么?你如何告诉使用' - 错误'的人? –

2

声明didCacheInterstitial:头文件这样说:

- (void)didCacheInterstitial:(CBLocation)location; 

不匹配您的实现。方法的定义必须与声明相匹配。

+0

这是有道理的,但这是否意味着实际的chartboost教程是错误的? https://help.chartboost.com/documentation/ios/namedlocations – KingPolygon

+0

有些问题,无论是教程还是标题。我真的不知道哪个。 –

+0

我明白了。你会如何解决我的问题? – KingPolygon

相关问题