2016-11-22 4 views
0

Je construis un SDK destiné aux développeurs de ma société, tant au siège social qu'à l'étranger. Ce SDK est implémenté en tant que Singleton et fournit aux développeurs des objets de données acquis (si possible) à partir de nos serveurs d'entreprise. J'ai l'intention de configurer NSURLSessionConfiguration, à l'aide de sharedURLCache de NSURLCache, lorsque le SDK est initialisé, mais je crains que, partagés, les paramètres de cache soient modifiés ultérieurement par les développeurs d'applications, conduisant éventuellement à des bogues obscurs.Comment dois-je gérer les paramètres de cache?

Y a-t-il un meilleur moyen?

Répondre

3

En supposant que vous êtes à l'aise avec Objective-c et Swizzling:

Vous pouvez ajouter un NSURLProtocol pour intercepter les appels pertinents et gérer leur mise en cache séparément. Ensuite, pour empêcher les autres protecteurs NSURL de surcharger les vôtres (ils sont vérifiés dans l'ordre dans lequel ils sont enregistrés), vous pouvez faire basculer l'appel pour enregistrer un nouveau protocole NSURL [NSURLProtocol registerClass:[MyURLProtocol class]]; et dans votre autre imp assurez-vous toujours d'ajouter votre NSURLProtocol comme le dernier.

Je veillerais cela est bien documentée et communiquée à tout développeur en utilisant votre sdk pour vous assurer qu'elle comprend que son NSURLProtocol sera président toujours lâche sur votre NSURLProtocol

voici quelques références à Swizzling et NSURLProtocol de la le seul et unique NSHipster ...

+0

Une option intéressante! – Kheldar