2011-06-13 90 views
0

所以我有一個IBAction爲:In App Purchase的問題

- (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值。我不想使用核心數據,因爲整個應用程序都是在沒有它的情況下編寫的。我必須使用核心數據嗎?

+4

只是將你的文本作爲鍵入數據插入plist或其他東西。然後,如果用戶購買了其他選項,則只需從不同的plist中加載。 – 2011-06-13 18:21:33

回答

3

在應用內購買時,我想要 替換result.text值。我做 不想要使用核心數據,因爲 整個應用程序已被寫入 沒有它。我必須使用核心 數據嗎?

爲什麼你認爲你需要核心數據?

在行之間閱讀,似乎你只需要一個文本文件,每行一個結果。閱讀文件,並打破它:

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

然後,你yesNo方法只會從數組抓取結果:

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

你可以更容易地使用一個NSArray從plist中讀取。用你的所有短語創建2個新的plists,一個與購買的數據,另一個與另一個。

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是真正用於大型數據集。你的場景非常簡單。