【发布时间】:2023-03-22 11:44:01
【问题描述】:
此应用程序是从Cococa and Objective C Up and Running 书中重写的代码。
当我开始尝试理解所有内容时,我想知道我在下面的代码中哪里出错了。对我来说,一切看起来都很好。
因此,您能否帮我确定警告的来源:
Incomplete Implementation
我在Photo.m 源代码文件的@implementation Photo 行中得到了这个?
照片.h
#import <Foundation/Foundation.h>
@interface Photo : NSObject{
NSString* caption;
NSString* photographer;
}
+ (Photo*) photo;
- (NSString*) caption;
- (NSString*) photographer;
- (void) setCaption: (NSString*)input;
- (void) setPhotographer: (NSString*)input;
@end
照片.m
#import "Photo.h"
@implementation Photo // <- Incomplete Implementation?
- (id)init
{
self = [super init];
if (self) {
[self setCaption:@"Default Caption"];
[self setPhotographer:@"Default Photographer"];
}
return self;
}
+ (Photo*) caption {
Photo* newPhoto = [[Photo alloc] init];
return [newPhoto autorelease];
}
- (NSString*) caption {
return caption;
}
- (NSString*) photographer {
return photographer;
}
- (void) setCaption:(NSString *)input {
[caption autorelease];
caption = [input retain];
}
- (void) setPhotographer: (NSString *)input {
[photographer autorelease];
photographer = [input retain];
}
- (void)dealloc
{
[self setCaption:nil];
[self setPhotographer:nil];
[super dealloc];
}
@end
我使用的是 Snow Leopard 10.6.7 和 Xcode 4.0.0。
【问题讨论】:
-
您的问题很快得到了回答(见下文),但顺便说一句,您是否有任何理由使用属性和 @synthesize 作为变量而不是手动执行 getter 和 setter?
-
@Jesse:嗨,Jesse。是的,你是对的,我的问题立即得到了回答。根本没有理由。我刚开始学习Objective-C。如果您有任何要添加的内容以使我的代码更好,我将很乐意吸收它。由于我对 Objective-C 的了解非常有限,因此我必须遵循本书提供的内容。
-
我很快就会把它放在我的答案中。
标签: objective-c xcode xcode4