2012-05-20 2 views
0

Так что у меня этот метод:Можно ли кэшировать CGRect в NSCache?

rect = CGRectFromString([self.indexToRectMap objectForKey:key]); 

, который неоднократно призывал снова и снова. Поэтому я хотел знать, есть ли способ кэшировать это или альтернативу этому?

+1

У вас уже есть «кешированный». Просто сохраните 'rect' - возможно, превратите его в ivar. –

+2

Или, гм, просто продолжайте получать его из словаря, из которого вы его получите. Почему вы предполагаете, что получить его из «NSCache» будет быстрее, чем получить его из этого словаря? Хотя предложение JustSid ниже, использовать 'NSValue' для обвязывания прямоугольника в объекте почти наверняка лучше, чем использование' NSString', как вы сейчас делаете. –

ответ

3

Вы можете сохранить прямоугольник внутри NSValue, а затем поместить его в кеш. Уже есть convenient methods для хранения и извлечения CGRect s в NSValue, поэтому его следует легко реализовать.

Смежные вопросы