我对NSString
和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行,空格更多。
请帮助我。
谢谢你,对不起我的英语。
答案 0 :(得分: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.
希望这会有所帮助:)