我是 ObectiveC 的初学者,所以请保持可能的答案简单。我在 C 和 C++ 方面有几年的经验。
现在,使用 ObjectiveC 我想创建两个对象,而不是使用属性。我的问题是“这里出了什么问题”而不是“如何以不同的方式做”。所以有我的代码:
@implementation News
NSString *_title;
NSString *_excerpt;
NSString *_content;
NSString *_thumbnailURL;
NSString *_date;
-(id)initWithTitle:(NSString *)title excerpt:(NSString *)excerpt content:(NSString*)content thumbnail:(NSString *)thumbnailURL date:(NSString *)date {
self = [super init];
if (self) {
_title = [[NSString alloc] initWithString:title];
_excerpt = [[NSString alloc] initWithString:excerpt];
_content = [[NSString alloc] initWithString:content];
_thumbnailURL = [[NSString alloc] initWithString:thumbnailURL];
_date = [[NSString alloc] initWithString:date];
}
return self;
}
-(void)showData {
NSLog(@" title:%@", _title);
NSLog(@" excerpt:%@", _excerpt);
NSLog(@" thumbnailURL:%@", _thumbnailURL);
NSLog(@" date:%@", _date);
NSLog(@" getContent:%@", _content);
}
@end
现在我想创建两个对象:
News *nws = [[News alloc] initWithTitle:@"title1" excerpt:@"excerpt1" content:@"content1" thumbnail:@"thumbnail1" date:@"date1"];
News *nws2 = [[News alloc] initWithTitle:@"title3" excerpt:@"excerpt3" content:@"content3" thumbnail:@"thumbnail3" date:@"date3"];
之后想显示这个对象里面有什么:
[nws showData];
[nws2 showData];
结果是两个对象内部具有相同的值。全部以“3”结尾。我认为 nws 对象将包含以“1”结尾的值,而 nws2 将包含以“3”结尾的值。但它不是那样工作的。为什么?哪里有错误?请帮忙,谢谢!