gpt4 book ai didi

ios - NSObject 的 Getters/Setters

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:58:46 26 4
gpt4 key购买 nike

这是我第一次尝试创建一个对象来存储我的数据,但遇到了一些麻烦。我不确定我以正确的方式处理这件事。

歌曲.h:

#import <Foundation/Foundation.h>

@interface Song : NSObject{
NSString *songID;
NSString *title;
NSString *artist;
NSString *album;
NSString *length;
NSString *votes;
}
-(void)setSongID:(NSString*) p_songId;
-(void)settitle:(NSString*) p_title;
-(void)setartist:(NSString*)p_artist;
-(void)setalbum:(NSString*) p_album;
-(void)setlength:(NSString*) p_length;
-(void)setvotes:(NSString*) p_votes;

-(NSString*)getSongID;
-(NSString*)gettitle;
-(NSString*)getartist;
-(NSString*)getalbum;
-(NSString*)getlength;
-(NSString*)getvotes;

@end

歌曲.m

#import "Song.h"

@implementation Song


-(void)setSongID:(NSString*) p_songId;{

}
-(void)settitle:(NSString*) p_title{

}

-(void)setartist:(NSString*)p_artist{

}
-(void)setalbum:(NSString*) p_album{

}
-(void)setlength:(NSString*) p_length{

}
-(void)setvotes:(NSString*) p_votes{

}

-(NSString*)getSongID{

}
-(NSString*)gettitle{

}
-(NSString*)getartist{

}
-(NSString*)getalbum{

}
-(NSString*)getlength{

}
-(NSString*)getvotes{

}

@end

我的实现文件看不到任何变量,例如我不能用 self.songID = p_songID 设置 songID

objective-c 是否有处理这些 setter/getter 的内置方法,我是不是用错了方法?

最佳答案

Objective C 有一种为您设置 getter 和 setter 的方法,因此您不必担心自己编写它们。它通过属性来做到这一点。要设置属性,请在头文件中写入

@property (strong, nonatomic) NSString *songID;

通常,除非有理由不这样做,否则您将使用强修饰符和非原子修饰符。如果您有兴趣,可以研究其他参数。编写该行后,将为您生成 getter 和 setter。

要在类中使用此属性,只需使用点符号和 self 对象即可。例如,要设置值,您可以编写

self.songID = @"66777888";

您以相同的方式访问属性的值。例如,要分配另一个等于该值的字符串,您可以编写

NSString *other = self.songID; 

如果你想在子类之外访问这些值,你仍然使用点表示法,除了现在使用类的实例。例如,如果你想设置来自另一个类的songID,你可以这样写

Song *song = [[Song alloc] init];
song.songID = @"790";

关于ios - NSObject 的 Getters/Setters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18435057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com