0

我知道这不是最佳实践,所以我想知道将所有这些请求删除到单个代表以减少加载时间的最佳方法是什么。结果是在调用每个提要时立即加载它或让它们异步加载

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:           (NSDictionary *)launchOptions
{
// Override point for customization after application launch.

// make RSS call
JSTRRSSReader *reader = [[JSTRRSSReader alloc] init];
[reader startRequest];

BUSINESSReader *busreader = [[BUSINESSReader alloc] init];
[busreader startRequest];

SPORTSReader *sportreader = [[SPORTSReader alloc] init];
[sportreader startRequest];

LIFESTYLEReader *lifestylereader = [[LIFESTYLEReader alloc] init];
[lifestylereader startRequest];

TEENAGEReader *teenagereader = [[TEENAGEReader alloc] init];
[teenagereader startRequest];

EDITORIALReader *editorialreader = [[EDITORIALReader alloc] init];
[editorialreader startRequest];

COLUMNReader *columnreader = [[COLUMNReader alloc] init];
[columnreader startRequest];

FOODReader *foodreader = [[FOODReader alloc] init];
[foodreader startRequest];

ALLWOMANReader *allwomanreader = [[ALLWOMANReader alloc] init];
[allwomanreader startRequest];

LETTERSReader *lettersreader = [[LETTERSReader alloc] init];
[lettersreader startRequest];

AUTOReader *autoreader = [[AUTOReader alloc] init];
[autoreader startRequest];

ENTERTAINMENTReader *entertainmentreader = [[ENTERTAINMENTReader alloc] init];
[entertainmentreader startRequest];

ENVIRONMENTReader *environmentreader = [[ENVIRONMENTReader alloc] init];
[environmentreader startRequest];

CAREERReader *careerreader = [[CAREERReader alloc] init];
[careerreader startRequest];

MAINReader *mainreader = [[MAINReader alloc] init];
[mainreader startRequest];

SLIDERReader *sliderreader = [[SLIDERReader alloc] init];
[sliderreader startRequest];

return YES;
}
4

1 回答 1

1

我不是 100% 确定你在问什么。但是,如果您的工作是线程安全的,您可以将这些调用中的每一个包装在一个异步块中。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    FOODReader *foodreader = [[FOODReader alloc] init];
    [foodreader startRequest];  //not sure if this is blocking or not, guessing yes

    dispatch_async(dispatch_get_main_queue(), ^{
          //do stuff here after the blocking call has finished. maybe notify delegate, etc
    });
});
于 2013-08-19T06:52:22.500 回答