我不知道预期的表达是什么

时间:2014-08-11 20:37:25

标签: objective-c syntax-error

它说我在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]];
    }

请帮助我感谢所有提前回答的人

2 个答案:

答案 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”。感谢您对那些很好的帮助。