如何为类编写正确的描述方法?
我已经实施了
- (NSString *)description {
NSString *descriptionString = [NSString stringWithFormat:@"Name: %@ \n Address: %@ \n", self.name, self.address];
return descriptionString;
}
Run Code Online (Sandbox Code Playgroud)
如果我在我的对象上调用描述,Evrey的事情就好了.但是如果我有一个对象数组并且我在其上调用描述,我会得到:
"姓名:Alex \n地址:某地址\n",
我想得到的是
"姓名:亚历克斯
地址:一些地址"
我有一个NSArray myArray的数组,这里是内容:
(
"<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246",
"<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324",
"<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367"
)
Run Code Online (Sandbox Code Playgroud)
我使用下面的代码分配给NSString myString:
NSString *myString = [myArray description];
Run Code Online (Sandbox Code Playgroud)
而且输出仍然如预期:
(
"<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246",
"<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324",
"<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367"
)
Run Code Online (Sandbox Code Playgroud)
现在,假设我想将myString转换回名为newArray的数组,我使用了这个:
NSArray *newArray = [[NSArray alloc]init];
newArray = [myString componentsSeparatedByString:@","];
Run Code Online (Sandbox Code Playgroud)
但是newArray的内容现在不同了:
(
"(
\"<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246\"",
"
\"<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324\"",
"
\"<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367\""
)"
)
Run Code Online (Sandbox Code Playgroud)
知道我需要做些什么来解决这个问题吗?
如何在Objective-c中将NSArray转换为NSString?