NSMutableArray 中的 NSString 与 myString 上的不同
Posted
技术标签:
【中文标题】NSMutableArray 中的 NSString 与 myString 上的不同【英文标题】:NSString in NSMutableArray isn't the same on myString 【发布时间】:2016-05-25 10:29:02 【问题描述】:我对@987654321@ 和NSMutableArray
有疑问。
当我从可变数组中检索一个字符串时,它有更多的空格,我不明白为什么会这样。
我会解释,我有一个数组并通过查询填充它(使用 sqlite3):
NSMutableArray *fileNameAttached = [[NSMutableArray alloc] initWithArray:[self.dbManager loadDataFromDB:query]];
是这样的:
<__NSArrayM 0x15e233980>(
<__NSArrayM 0x15e26afd0>(
Allegato N. 1
)
)
当我使用此代码检索字符串 Allegato N.1 时:
NSString *test = [NSString stringWithFormat:@"%@", [fileNameAttached objectAtIndex:0] ];
字符串测试是这样的:
(
"Allegato N. 1"
)
为什么我的字符串不只是:
Allegato N.1
当我将它放在标签中时,它是不正确的,因为包含 () 和空格。 DB的查询是:
NSString *query = [NSString stringWithFormat:@"SELECT fileName FROM Attach WHERE ID = '%@';",ticketID];
而且效果很好,事实上,当我填充 tableview 单元格时就可以了。但我不明白,因为我的字符串测试包含 3 行和更多的空格。
请帮帮我。
谢谢你,对不起我的英语。
【问题讨论】:
根据您的日志:它似乎是NSString的NSArray的NSArray。所以NSString *test = [[fileNameAttached objectAtIndex:0] objectAtIndex:0];
,但这可能会指出其他地方的问题(格式/获取错误)
我尝试了您的解决方案,效果很好。谢谢,你能解释一下,因为我的数组是 NSArray 的 NSArray ......我哪里做错了?非常感谢
如果没有您获取的代码,我们无法猜测。但是如果你的查询(如果它们是各种结果)是给出一个 NSArray 的 NSArray 的 NSString ,这是正确的。
【参考方案1】:
在您的日志中有两个数组。
(
(
Allegato N. 1
)
)
有两个圆括号表示两个数组。
你正在获取像NSString *test = [NSString stringWithFormat:@"%@", [fileNameAttached objectAtIndex:0] ];
这样的数据
这意味着外部数组的第一个对象,所以它是另一个数组。所以你需要做类似的事情
NSArray *temp =[fileNameAttached objectAtIndex:0];
NSString *test = [NSString stringWithFormat:@"%@", [temp objectAtIndex:0] ];
I think you are using appcoda's DBManager class to do this. If it is so then you everytime got two array when load query.
希望这会有所帮助:)
【讨论】:
是的,我使用了 appcoda 的 DBManager 类。因此,我如何从 NSArray 中提取 NSArray 或者如何在 DBManager 类中解决这个问题?非常感谢 您无需解决任何问题。你每次都得到数组数组,所以你可以按照我在回答中提到的那样解析它。以上是关于NSMutableArray 中的 NSString 与 myString 上的不同的主要内容,如果未能解决你的问题,请参考以下文章
访问另一个 NSMutableArray 中的对象的 NSMutableArray(即嵌套对象访问)
使用 NSMutableArray 中的数据填充 UITableView