imageitem类定义

时间:2012-05-29 16:48:51

标签: objective-c class set declaration

我需要构建一个应用程序来定义应该由图像项组成的数组。 每张图片都有图像,名字和摄影师的名字。 我建立我的图像项类,我想让你检查我的定义是否正确和好(我刚开始学习目标c)。 我想让你强调一下这套方法。

这是photoitem.h:

#import <Foundation/Foundation.h>

@interface photoItem : NSObject
 {
     UIImage *imageView;
     NSString *photoNameLabel;
     NSString *photographerNameLabel;
     UIButton *viewPhoto;
 }
 @property(readonly) NSString *name;
 @property(readonly) NSString *nameOfPhotographer;
 @property(readonly) UIImage *imageItem;

 -(id)makePhotoItemWIthPhoto:(UIImage*)image name:(NSString*)photoName photographer:   (NSString*)photographerName;

@end

这是我的photoitem.m:

#import "photoItem.h"

@implementation photoItem

@synthesize name;
@synthesize nameOfPhotographer;
@synthesize imageItem;

-(id)makePhotoItemWIthPhoto:(UIImage*)image name:(NSString*)photoName photographer:(NSString*)photographerName
{
    [self setName:photoName];
    [self setNameOfPhotographer:photographerName];
    [self setImageItem:image];
    return self;
}

-(void) setName:(NSString *)name
{
    photoNameLabel = name;
}  

-(void) setNameOfPhotographer:(NSString *)nameOfPhotographer
{
    photographerNameLabel = nameOfPhotographer;
}

-(void)setImageItem:(UIImage *)imageItem
{
    imageView = imageItem;
}
@end

我希望你能解决我的错误(如果有的话)。 感谢。

1 个答案:

答案 0 :(得分:0)

我想到了两个问题:

1)-(id)makePhotoItemWIthPhoto:name:photographer:可能会更好-(id)initWithPhoto:name:photographer:。否则,调用者首先需要allocinit一个对象,以便self有效,然后调用您的方法。那时,self的回归没有意义。 例如:

-(idinitWithPhoto:(UIImage*)image name:(NSString*)photoName photographer:(NSString*)photographerName {
    self = [super init];
    if (self) {
        [self setName:photoName];
        [self setNameOfPhotographer:photographerName];
        [self setImageItem:image];
    }
    return self;
}

2)三个只读属性似乎没有任何用途,因为它们与您在makePhotoItemWIthPhoto:方法中初始化的变量没有任何关联。