我需要构建一个应用程序来定义应该由图像项组成的数组。 每张图片都有图像,名字和摄影师的名字。 我建立我的图像项类,我想让你检查我的定义是否正确和好(我刚开始学习目标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
我希望你能解决我的错误(如果有的话)。 感谢。
答案 0 :(得分:0)
我想到了两个问题:
1)-(id)makePhotoItemWIthPhoto:name:photographer:
可能会更好-(id)initWithPhoto:name:photographer:
。否则,调用者首先需要alloc
和init
一个对象,以便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:
方法中初始化的变量没有任何关联。