它说我在if ([validProduct.productIdentifier isEqualToString:SantaProductID]) {
行有一个错误。 (使用Xcode 4.5)
它只是说“预期的表达”。
-(void)productsRequest:(SKProductsRequest *)request
didReceiveResponse:(SKProductsResponse *)response
{
SKProduct *validProduct = nil;
int count = [response.products count];
if (count>0) {
validProducts = response.products;
validProduct = [response.products objectAtIndex:0];
if ([validProduct.productIdentifier isEqualToString:SantaProductID]) {
[SantaLabel setText:[NSString stringWithFormat:
@"%@",validProduct.localizedTitle]];
[SantaDescriptionLabel setText:[NSString stringWithFormat:
@"%@",validProduct.localizedDescription]];
}
请帮助我感谢所有提前回答的人
答案 0 :(得分:1)
我从您的问题的评论中得到的是您的代码如下:
#define SantaProductID
-(void) productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
// Using SantaProductID here as an NSString*
}
问题是您使用preprocessor directive来声明运行时变量。 那不行。 (有关您在上面链接中使用的内容的更多详细信息)
您不需要声明编译时选项,而是需要:
#define
具有实际值,使预处理器替换" SantaProductID"用这个文字NSString* SantaProductID = @"myID";
此变量可以是处理IAP或全局范围(不公开)的类的成员。答案 1 :(得分:0)
我解决了。
我刚用我的IAP的包标识符替换了“SantaProductID”。感谢您对那些很好的帮助。