NSMutableArray中的NSString在myString上是不一样的

时间:2016-05-25 10:29:02

标签: ios objective-c nsstring nsmutablearray

我对NSStringNSMutableArray有疑问。 当我从可变数组中检索字符串时,它有更多的空格,我不明白它为什么会发生。

我将解释,我有一个数组并通过查询填充它(使用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行,空格更多。

请帮助我。

谢谢你,对不起我的英语。

1 个答案:

答案 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.

希望这会有所帮助:)