Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c (NSString*)说明--某些内容不清楚。。。。(目标-C)_Objective C_Arrays_Nsmutablearray_Nsmutabledictionary - Fatal编程技术网

Objective c (NSString*)说明--某些内容不清楚。。。。(目标-C)

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

假设我有两个数组。让我们假设一个是NSMutableDictionary,另一个是NSMutableArray

我也有这样的定义:

-(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中使用的术语)。这就触及了问题的核心:你要么需要编写一个不在乎它处理什么类型的方法,要么你需要知道你在处理什么类型的方法。介于两者之间的任何事情都没有意义。