acceso al objeto matriz

creo una matriz y la inicializo con objetos. Intenté obtener acceso al objeto de matriz pero obtengo un (nulo). ¿Qué hago mal?

    photoArray = [[NSMutableArray alloc] init];
    PhotoItem *photo1 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"1.jpg"] name:@"roy rest"  photographer:@"roy"];
    PhotoItem *photo2 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"2.jpg"] name:@"roy's hand" photographer:@"roy"];
    PhotoItem *photo3 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"3.jpg"] name:@"sapir first" photographer:@"sapir"];
    PhotoItem *photo4 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"4.jpg"] name:@"sapir second" photographer:@"sapir"];
    [photoArray addObject:photo1];
    [photoArray addObject:photo2];
    [photoArray addObject:photo3];
    [photoArray addObject:photo4];

Intento obtener acceso a uno de los objetos por esta línea de código (que devuelve (nulo)):

photoName.text = [NSString stringWithFormat:@"%@", [[photoArray objectAtIndex:2] nameOfPhotographer]]

actualización: código de fotoitem:

-(id)initWithPhoto:(UIImage*)image name:(NSString*)photoName photographer:(NSString*)photographerName
{
    self = [super init];
    if(self)
    {
    imageItem = image;
    name = photoName;
    nameOfPhotographer = photographerName;


    //[self setName:photoName];
    //[self setNameOfPhotographer:photographerName];
    //[self setImageItem:image];
}
return self;
}

¿Cuál es el problema?

gracias !!

Respuestas a la pregunta(2)

Su respuesta a la pregunta