Насколько я могу судить, стандартное поведение NSCache - выбрасывать объекты при появлении предупреждения о памяти.
Таким образом, вы можете просто хранить ваши объекты «голыми» в вашем кеше, как если бы это был NSDictionary, и они будут очищены, когда память станет тесной. Вам не нужно оборачивать их в отбрасываемый объект или делать что-либо еще. Э.Г.
[myCache setObject:foo forKey:@"bar"]; // foo will be released if memory runs low
Это не очень ясно из документации, но, насколько я могу судить, цель протокола контента <NSDiscardableContent>
состоит в реализации более сложного поведения, при котором объект может освобождать подкомпоненты, когда памяти мало, без необходимости освобождения себя.