pampua84
pampua84

Reputation: 884

NSString in NSMutableArray isn't the same on myString

I have a problem with NSString and NSMutableArray. When I retrieve a string from mutable array ,it has more white spaces, and I don't understand why it's happening.

I'll explain, I have an array and populate it by query (using sqlite3):

NSMutableArray *fileNameAttached = [[NSMutableArray alloc] initWithArray:[self.dbManager loadDataFromDB:query]];

and it's like this:

<__NSArrayM 0x15e233980>(
<__NSArrayM 0x15e26afd0>(
Allegato N. 1
)

)

When I retrieve the string Allegato N.1 with this code:

NSString *test = [NSString stringWithFormat:@"%@", [fileNameAttached objectAtIndex:0] ];

string test is like this:

(
    "Allegato N. 1"
)

Why my string isn't only:

Allegato N.1

When I put it in a label it's not correct because contains () and white spaces. The query for DB is:

NSString *query = [NSString stringWithFormat:@"SELECT fileName FROM Attach WHERE ID = '%@';",ticketID];

and works perfectly,in fact when I populate tableview cell it's OK. But I don't understand because my string test contains 3 line with more white spaces.

Please help Me.

Thank you and sorry for my english.

Upvotes: 0

Views: 59

Answers (1)

Ketan Parmar
Ketan Parmar

Reputation: 27438

In your log there are two arrays.

( ( Allegato N. 1 ) )

There are two round brackets thats means two array.

You are fetching data like NSString *test = [NSString stringWithFormat:@"%@", [fileNameAttached objectAtIndex:0] ];

That means first object of outer array so it is another array. so you need to do something like

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.

Hope this will help :)

Upvotes: 1

Related Questions