Objective c (NSString*)说明--某些内容不清楚。。。。(目标-C)
假设我有两个数组。让我们假设一个是NSMutableDictionary,另一个是NSMutableArray 我也有这样的定义:Objective c (NSString*)说明--某些内容不清楚。。。。(目标-C),objective-c,arrays,nsmutablearray,nsmutabledictionary,Objective C,Arrays,Nsmutablearray,Nsmutabledictionary,假设我有两个数组。让我们假设一个是NSMutableDictionary,另一个是NSMutableArray 我也有这样的定义: -(NSString *) description { // return a human readable version of the array contents return self.contents; } 然后,为了清晰起见,我想使用如下方式打印一个数组: self.descriptionOfLastFlip = [NSString s
-(NSString *) description {
// return a human readable version of the array contents
return self.contents;
}
然后,为了清晰起见,我想使用如下方式打印一个数组:
self.descriptionOfLastFlip = [NSString stringWithFormat:@"Array %@",[cardsFaceUp componentsJoinedByString:@", "]];
- (NSString *)description {
return [NSString stringWithFormat:@"MyClass { array = %@, dictionary = %@ }", someArray, someDictionary];
}
然后,当然,使用self.descriptionFlastFlip将某些内容打印到屏幕上
好吧,愚蠢的提问时间。。。如何定义两种不同的描述方法,以不同的方式处理数组和字典?显然,我可能希望访问信息的方式略有不同,但是self.description虽然可以用于数组,但不能用于字典
我希望了解如何为多个数组/字典创建描述方法(或者,如何将描述“定向”到一种类型的数组,等等?)我倾向于这样做:
self.descriptionOfLastFlip = [NSString stringWithFormat:@"Array %@",[cardsFaceUp componentsJoinedByString:@", "]];
- (NSString *)description {
return [NSString stringWithFormat:@"MyClass { array = %@, dictionary = %@ }", someArray, someDictionary];
}
将
someArray
和someDictionary
替换为您希望包含的任何属性或IVAR。我倾向于这样做:
self.descriptionOfLastFlip = [NSString stringWithFormat:@"Array %@",[cardsFaceUp componentsJoinedByString:@", "]];
- (NSString *)description {
return [NSString stringWithFormat:@"MyClass { array = %@, dictionary = %@ }", someArray, someDictionary];
}
将
someArray
和someDictionary
替换为您希望包含的任何属性或IVAR。您确定您拥有该代码吗?它应该自己调用,永远不会返回,最终会溢出堆栈。。表示“返回self.contents”description
方法用于调试。您的实现应该返回对象的适当字符串表示形式。在记录此类的实例时,应该包括希望看到的所有值。如果没有description
,我只能打印指向数组的指针。。如果我想打印数组的实际内容,我需要实现描述。你怎么可能“有两个数组……一个是NSMutableDictionary”?字典不是数组(至少使用ObjC中使用的术语)。这就触及了问题的核心:你要么需要编写一个不在乎它处理什么类型的方法,要么你需要知道你在处理什么类型的方法。介于两者之间的任何东西都没有意义。你确定你有那个密码吗?它应该自己调用,永远不会返回,最终会溢出堆栈。。表示“返回self.contents”description
方法用于调试。您的实现应该返回对象的适当字符串表示形式。在记录此类的实例时,应该包括希望看到的所有值。如果没有description
,我只能打印指向数组的指针。。如果我想打印数组的实际内容,我需要实现描述。你怎么可能“有两个数组……一个是NSMutableDictionary”?字典不是数组(至少使用ObjC中使用的术语)。这就触及了问题的核心:你要么需要编写一个不在乎它处理什么类型的方法,要么你需要知道你在处理什么类型的方法。介于两者之间的任何事情都没有意义。