加载随机APi内容

时间:2014-05-29 17:18:51

标签: ios objective-c cocoa-touch

如何更改此功能以从API中随机加载内容?我想传入一个随机整数并更改网址的结束点。

NSString* WebServiceURL =@"http://movie-quotes.herokuapp.com/api/v1/quotes";

到这个

http://movie-quotes.herokuapp.com/api/v1/quotes/2

最后的数字是报价编号

以下是我的相关代码:

-(void)LoadQuotesRandom
 {


randomQuotes = nil;

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
    // Load the JSON string from our web serivce (in a background thread)
    NSDictionary * dictionary = [JSONHelper loadJSONDataFromURL:WebServiceURL];

    dispatch_async(dispatch_get_main_queue(), ^{

        randomQuotes = [NSMutableArray array];

        // Iterate through the array of Customer records in the dictionary
        for (NSDictionary * oneQuote in dictionary)
        {
            Quotes* newQuotes =[[Quotes alloc] init];
            // Add our new Customer record to our NSMutableArray
            newQuotes.Quote = [oneQuote objectForKey:@"content"];
            newQuotes.FilmName =[oneQuote objectForKey:@"film"];
            [randomQuotes addObject:newQuotes];

        }

    });
});

}

1 个答案:

答案 0 :(得分:0)

为了更简单地重述,我想你想要一个带有随机整数后缀的url字符串。

NSInteger randomInt = arc4random_uniform(SOME_MAX);
NSString *baseUrl = @"http://movie-quotes.herokuapp.com/api/v1/quotes";
NSString *webServiceUrl = [NSString stringWithFormat:@"%@/%ld", baseUrl, randomInt];

您需要#define SOME_MAX获取可以请求的最大报价索引。

我建议您将完全分开,以获取发出请求的代码。在给定描述url的字符串的情况下获取一个可以执行任何请求的工作,以及生成这些url字符串的单独部分。