UIImage API Справочный документ: -
initWithContentsOfFile:
Инициализирует и возвращает объект изображения с содержимым указанного файла.iOS - Я запутался, как здесь обрабатывается память?
- (id)initWithContentsOfFile:(NSString *)path
Параметры
путь
Путь к файлу. Этот путь должен включать расширение имени файла, которое идентифицирует тип данных изображения.
Возвращаемое значение Инициализированный UIImage объект или всухую если метод не может найти файл или инициализировать изображение из его содержимого.
Учитывая этот сценарий, предположим, что у меня есть класс, это может быть расширение любого класса. Например, взял UIImage.
@interface myImage : UIImage
{
BOOL isDefaultSet;
}
-(id)initWithDefaultImage;
@end
@implementation myImage
-(id)initWithDefaultImage
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"someInvalidImage" ofType:@"png"];
idDefaultSet = YES;
return [self initWithContentsOfFile:path];
}
@end
//somewhere in other class:
NSString *path = [[NSBundle mainBundle] pathForResource:@"someInvalidImage" ofType:@"png"];
myImage *myObject = [[myImage alloc] initWithDefaultImage];
UIImage *yourObject = [[UIImage alloc] initWithContentsOfFile:path];
теперь вот в обоих случаях
"Alloc" дает "retainCount + 1"
и если
initWithDefaultImage/initWithContentsOfFile
вернулся из-за какой-то вопрос - позволяет говорить (недействительный путь к файлу), эта память будет просочилась в
MyObject/yourObject
будет установлен в ноль, даже если распределение было сделано до инициализации.
Я видел много реализаций для расширенных классов/интерфейсов таким образом. Я запутался, как здесь обрабатывается память? может ли кто-нибудь поделиться взглядом на это?
Я предлагаю придерживаться конвенции и начинать занятия с символов верхнего регистра. Вы облегчите свою жизнь (и если вы будете работать с другими людьми, вы не будете оскорблены и избиты ;-) – DarkDust
дорогой DarkDust .. Я просто обсуждаю эту проблему. пожалуйста, не будьте настолько суровы ..! – samfisher
Я думаю, что DarkDust шутит, вот и все. Тем не менее, DarkDust верен, поскольку я усвоил трудный путь, что классы должны быть заглавными, иварцы и методы начинаются с нижнего регистра. – johnbakers