【问题标题】:In App Purchase Question应用内购买问题
【发布时间】:2011-06-13 18:19:09
【问题描述】:

所以我有一个 IBAction:

- (IBAction)yesNo {
    int rNumber = rand() % 26;
    switch (rNumber) {
        case 0:
            result.text  = @"Never";
            break;
        case 1:
            result.text = @"If you're lucky...";
            break;
        case 3:
            result.text = @"Think twice";
            break;
        case 4:
            result.text = @"GO!";
            break;
        case 5:
            result.text = @"Hmmm. Try me again";
            break;
        case 6:
            result.text = @"As I see it, yes";
            break;
        case 7:
            result.text = @"It is certain";
            break;
        case 8:
            result.text = @"It is decidedly so";
            break;
        case 9:
            result.text = @"Most likely";
            break;
        case 10:
            result.text = @"Outlook good";
            break;
        case 11:
            result.text = @"Signs point to yes";
            break;
        case 12:
            result.text = @"Without a doubt";
            break;
        case 13:
            result.text = @"Yes";
            break;
        case 14:
            result.text = @"Yes - definitely";
            break;
        case 15:
            result.text = @"You may rely on it";
            break;
        case 16:
            result.text = @"Reply hazy, try again";
            break;
        case 17:
            result.text = @"Ask again later";
            break;
        case 18:
            result.text = @"Better not tell you now";
            break;
        case 19:
            result.text = @"Cannot predict now";
            break;
        case 20:
            result.text = @"Shake again";
            break;
        case 21:
            result.text = @"Don't count on it";
            break;
        case 22:
            result.text = @"My reply is no";
            break;
        case 23:
            result.text = @"My sources say no";
            break;
        case 24:
            result.text = @"Outlook not so good";
            break;
        case 25:
            result.text = @"Very doubtful";
            break;

        default:
            break;
    }
}

在应用内购买时,我想替换 result.text 值。我不想使用核心数据,因为整个应用程序都是在没有它的情况下编写的。我必须使用核心数据吗?

【问题讨论】:

  • 只需将您的文本作为键控数据填充到 plist 或其他内容中。如果用户购买了其他选项,则只需从不同的 plist 加载。

标签: iphone objective-c ios4 core-data


【解决方案1】:

在应用内购买时,我想 替换 result.text 值。我愿意 不想使用核心数据,因为 整个应用程序已编写 没有它。我必须使用核心吗 数据?

您认为为什么需要 Core Data?

在两行之间阅读,您似乎只需要一个每行一个结果的文本文件。阅读文件并将其分解:

NSString *resultsData = [NSString stringWithContentsOfFile:...];
NSArray *results = [resultsData componentsSeparatedByString:@"\n"];
[...someController... useTheseResultsMan: results];

然后,您的 yesNo 方法只会从数组中获取结果:

results.text = [[...someController... resultsToBeUsedMan] objectAtIndex: rNumber];

【讨论】:

    【解决方案2】:

    您可以更轻松地使用从 plist 读取的 NSArray。创建 2 个包含所有短语的新 plist,一个包含购买的数据,一个包含另一个。

    if (userHasPaid) {
         NSArray *myArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"myPurchasedArray" ofType:@"plist"];
    } else {
         NSArray *myArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"myFreeArray" ofType:@"plist"];
    }
    

    然后:

    - (IBAction)yesNo {
    
    result.text = [myArray objectAtIndex:rNumber];
    
    }
    

    CoreData 确实适用于非常大的数据集。你的场景要简单得多。

    【讨论】:

      猜你喜欢
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多