проблема в этом...
Я создал класс, который расширяет UIBezierClass, называемый PathExtended, в который я добавил идентификатор NSString;
Итак, у меня есть массив PathExtended. В методе drawrect я написал:
p = [[PathExtended alloc] init];
for (int i=0; i<[arrayOfPaths count]; i++) {
[p appendPath:[arrayOfPaths objectAtIndex:i]];
[p closePath];
}
[p applyTransform:CGAffineTransformMake(a, b, c, d, e, f)];
[p fill];
Теперь, если я проверю метод touchend:
if ([p containsPoint:pointTouched]) {
NSLog(@"There is!");
}
Ничего страшного!!! Вместо этого, если я проверю:
if ([p containsPoint:pointTouched]) {
NSLog(@"ID= %@", p.ID);
}
Лог пустой!!
Я могу понять, почему это происходит, но я не могу понять, как решить проблему. Я думал, что appendPath создает уникальный путь, поэтому информация о каждом отдельном пути, например идентификатор, теряется. Я также подумал, что если я нарисую каждый путь без использования метода appendPath, я смогу решить проблему, но... я не знаю... кажется, что я иду неправильным путем.
Есть идеи??? Извините за мой английский (я итальянец: P)
РЕДАКТИРОВАТЬ:
Расширенный путь .h
@interface PathExtended : UIBezierPath {
NSString* ID;
}
@property (nonatomic, readwrite) NSString* ID;
-(id) initwithID:(NSString*) _ID;