tableView crashiness on scrolling with unique classNames for layouts

Hi All,

My earlier tableView crashiness was solved (mostly) by using a unique className for each layout type.

I now get random crashes after a period of use. Originally I though this was because I added I search bar but removing that does not seem to help.

The table is made up of complex rows comprised of either 3 or 4 labels. Each row now also has a text parameter that I have named 'search_field'. The 'search_field' is set on row creation with number of merged text fields retrieved from the DB of approximately 60 chars in length.

The table has it's filterAttribute set to 'search_field'.

Everything works, but after a few minutes of using the table I get random crashes, this time whit a different error (insert nil objects).

I don't see any apparent problems, all the DB connections close neatly, all the

Any ideas?

Stack trace below.



2010-12-13 01:04:11.386 AutoLogBook[2605:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSArray initWithObjects:count:]: attempt to insert nil object at objects[4]'
*** Call stack at first throw:
0 CoreFoundation 0x02215be9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x0236a5c2 objc_exception_throw + 47
2 CoreFoundation 0x0215fffe -[__NSPlaceholderArray initWithObjects:count:] + 494
3 CoreFoundation 0x0218baba +[NSArray arrayWithObjects:count:] + 74
4 CoreFoundation 0x0219f1e8 -[NSDictionary allKeys] + 184
5 AutoLogBook 0x000a1639 -[TiProxy allKeys] + 53
6 AutoLogBook 0x0005818e -[TiViewProxy firePropertyChanges] +

2 Answers

  • Accepted Answer

    Hi Nick

    Does the same happen when you run the KitchenSink "TableView (Layout 2)" example?

    Which version of the SDK are you using?

    Would you gradually strip out functionality from your code until it is stable, to determine what is the root cause? When you have the most minimal script that exhibits the behaviour, would you pastebin it to give people more of an insight into what is going on? Please ensure it runs without modification when pasted into a new project, so that we have exactly the same test on our systems.