简单的NSString错误 - 打印(null)

时间:2012-02-10 00:43:59

标签: iphone objective-c nsstring

我遇到NSString问题。我觉得这是一个非常简单的事情,但我已经盯着它看了一会儿,似乎无法到达任何地方:/非常感谢您的帮助!

我定义了一个名为Painting的类。 这是Painting.h:

@interface Painting : NSObject {
    NSString *artist;
    UIImage *image;
}

@property (nonatomic, copy) NSString *artist;
@property (nonatomic, copy) UIImage *image; 

@end

这是Painting.m:

@implementation Painting

@synthesize artist, image;

@end

在视图控制器的.h文件中,我创建了一个“绘画”:

Painting *monet;
@property (nonatomic, retain) Painting *monet;

现在,在它的.m文件中,我正在尝试做一个非常简单的打印,它将无法正常工作。我得到(null)而不是“Monet”。

monet.artist = @"Monet";
NSString *bob3 = monet.artist; 
NSLog(@"Real artist: %@", bob3);

然而,这确实有效(给我“Monet”而不是(null)):

NSString *bob3 = @"Monet"; 
NSLog(@"Real artist: %@", bob3);

我错过了什么?

1 个答案:

答案 0 :(得分:4)

您之前可能需要:

monet.artist = @"Monet";

这样:

monet = [[Painting alloc] init];