私が持っているクラス:プロパティ/メソッドの1つとしてカスタムクラスオブジェクトを参照する方法はありますか?例えば
CustomClass *obj = [[CustomClass alloc] init];
obj.name = @"Custom object";
obj.value = @1;
それに参照のうえときの「name」プロパティまたはgetDictメソッドを取得する方法があります:
@interface CustomClass: NSObject
@property(nonatomic, readwrite) NSString *name;
@property(nonatomic, readwrite) NSNumber *value;
-(NSDictionary *)getDict;
@end
@implementation CustomClass
-(NSDictionary)getDict
{
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary: @{}];
if(self.name) {
dict[@"name"] = self.name;
}
if(self.value) {
dict[@"value"] = self.value;
}
return dict;
}
@end
は、その後、私は、そのクラスのインスタンスを作成しますオブジェクト?同様
NSLog(@"%@", obj);
は、たとえば 'name'プロパティのみを返しますか?
辞書呼び出し[obj getDict]を取得して名前を取得するにはNSString * name = [obj getDict] [@ "name"] – suhit
これを取得するのに 'obj'ではなく' obj.name'を呼び出さないのはなぜですか?それがログだけの場合、 ' - (NSString *)description'を' return _name; 'のようなもので上書きしてください。それは誤解を招きます。私が知っている 'return [NSString stringWithFormat:@" <%@ %p>名前:%@、[self class]、self、_name]; ' – Larme
を実行する方が良いかもしれないが、直接プロパティまたはメソッドを参照しない方法がある。 – Ratka