Objective c 对于某些复合对象,什么是好的键?

Objective c 对于某些复合对象,什么是好的键?,objective-c,nsobject,Objective C,Nsobject,我正在制作这个简单的课程: @interface BGPairButtonCatalog : NSObject @property (readonly,nonatomic) UIButton * btnButton; @property (readonly,nonatomic) BGReviewsTablesatProfile * rtpReviewsTables; -(id)initWithBtn:(UIButton*) btnButton andReviewsTablesatProfil

我正在制作这个简单的课程:

@interface BGPairButtonCatalog : NSObject

@property (readonly,nonatomic) UIButton * btnButton;
@property (readonly,nonatomic) BGReviewsTablesatProfile * rtpReviewsTables;

-(id)initWithBtn:(UIButton*) btnButton andReviewsTablesatProfile: (BGReviewsTablesatProfile *) rtpReviewsTables;
@end
现在,我需要该类的NSDictionary对象

NSDictionary必须能够通过btnButton进行搜索

然而,btnButton并不是NSDictionary的好键


所以可能是btnButton的一个元素。什么?地址?

如果您尚未使用
btnButton
标记
属性,我建议生成一个唯一的整数(例如,使用计数器和生成器方法),并将其分配给每个按钮。然后只需在按钮标签的
[NSNumber numberwhithinteger::
上索引
NSDictionary

可以按如下方式查找结果目录对象:

BGPairButtonCatalog *catalog = (BGPairButtonCatalog *)self.btnIndex[@(keyButton.tag)];

您可以按照简单的路线,使用简单的字符串来表示按钮。只需以描述按钮上下文的方式命名字符串。或者,向类中添加一个可以是整数的属性,然后为其指定一个唯一的值,并在数组中而不是在字典中存储/搜索。如何将按钮的地址获取为字符串?