Мне нравится создавать экземпляр пользовательского класса, передавая ему значение, которое после init поможет его настроить. Я переопределил init и фактически изменил его на:
- (id)initWithValue:(NSInteger *)initialValue;
Я хотел бы сохранить это значение в свойстве экземпляра объекта и использовать его для генерации имени файла UIImage, который будет с ним связан.
Мой вопрос: как лучше это сделать в Какао / Obj-C? NSInteger лучший параметр для моих нужд или NSString будет лучше? Или есть другой шаблон дизайна? Я не знаком со всеми творческими методами, которые могут помочь в этой ситуации. Предположим, что мои свойства класса:
@interface MyView : UIView {
UIImage *image;
NSInteger value;
Если я использую NSInteger в качестве параметра, я легко могу присвоить ему значение . но тогда потребуется сгенерировать "image12.png" из этого значения (предположим, NSInteger = 12), чтобы настроить мой UIImage. Что-то вроде "image" + initialValue + ". Png". Который, я полагаю, многословно выражен в Obj-C как:
NSString *myValue = @"image";
[myValue stringByAppendingString:[initialValue stringValue]]; //NSInteger may not respond to stringValue?!?
[myValue stringByAppendingString:@".png"]
Именно здесь мое понимание Obj-C нарушается. Мне кажется, что это должно быть проще, но я все еще в замешательстве.
Теперь, если initialValue был строкой NSSt со значением @ "12", может быть, это так? затем self.value = [initialValue integerValue];
и я могу создать image с несколькими вызовами stringByAppendingString. Просто кажется утомительным для чего-то такого простого на других языках.
Какой лучший способ справиться с чем-то подобным?