uitableview reload not working on arm64 devices

I have an UITableView that does not reload data on arm64 devices. The tableview loads data when the app is first launched but subsequent reloads don't load data. The same app version works on armv7s devices. The interesting thing is when I attach a arm64 device to XCode to debug, the table view reloads the data. If I delete the app and run the app again without XCode, the tableview does not reload.

I am able to verify through logs that the following delegate methods for tableview are called after

[self.tableView reloadData]
. However the table does not update in the UI.

- numberOfSectionsInTableView

- numberOfRowsInSection

- scrollViewDidScroll

- cellForRowAtIndexPath


This is what I have narrowed it down to. If I compile with arm64 support in Build Settings, the table view does not refresh on arm64 devices. If I remove arm64 from build settings, the tableview does refresh, however I can't upload to App Store because it is not 64 bit enabled.


Has anyone else seen this type of behavior or could point me to anything that could be causing this?

Replies

Apple has a guide written up for the 32-bit to 64-bit transition as far as things that will cause problems, and I'd guess that you've managed to stumble over one of the situations by accident in your code.


https://developer.apple.com/library/content/documentation/General/Conceptual/CocoaTouch64BitGuide/ConvertingYourAppto64-Bit/ConvertingYourAppto64-Bit.html

Has anyone else seen this type of behavior or could point me to anything that could be causing this?

It’s hard to say without more information about the problem. There’s two ways you might investigate this further:

  • Create a small test app that uses UITableView in a way similar to your main app to see if it has problems when run 64 bit.

  • Dig deeper into the values returned by each of your data source / delegate methods to see if any of them are returning weird results on 64 bit.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"