Answers

if I lock iPhone fps to 24fps, can I get more accurate touch timings than that?

0

at 24fps it's 41.66 milliseconds between frames. Can I get more accurate information about the timings of the players tap/touches of the screen than that, or the reports on touch time locked to the fps?

I want to know the EXACT moment in time between touches. Or as exact as the iPhone clock enables whilst running a game.

Consider 24fps an arbitrary frame rate. It could be 30fps, 60fps or any other rate the iPhone funs at. The point of interest is exact measurement of tap times independent of frame rate. Possible how?

This might be a slight far shot since I have absolutely zero experience with iPhone and developing for it.

I just thought I'd mention that if (and only if) there is a thread safe way of polling the touch data, either via Unity3D or via some other library (if that is supported on iPhone), and if (and only if) you can create threads on iPhone, then;

Create a new thread that samples the data at your fixed intervals and produce a message queue with the samples that you can use in Update via a synchronized Queue. This will in theory allow you to sample input at a higher frequency than your game is updating. You'd typically have to dequeue all of the results to get to the data you're after (maybe you want to smooth it over time or maybe you just want to check for rapid, fine granular movements).

No, not really. The answer is "if unity iPhone support libs and threads, then you can make a new thread and call the lib that can provide such polling". I don't know enough iPhone development to know fully what is supported or not, but in an ideal world you wouldn't have to touch Objective-C for this task. The threading and synchronized queue are all in .net/mono. How to actually sample the values I don't know. If you can get a library that does this, then use that in the thread.

The iPhone screen doesn't do 24 fps, it's vsynced always, so you get 60 fps or 30 fps (or 15 I suppose). In any case, as the docs say, "You can retrieve the status of each finger touching the screen during the last frame by accessing the Input.touches property array."

I don't know if this solves your problem or not, it apparently it will count the taps for you. If this is frame rate independent or not, I can't tell. If it is frame rate independent it probably won't offer you information about how long it took between each tap as it is only a value describing the number of taps. There exist also a deltaTime variable, but I don't know if you get a touch sample for every little tap. If you do, you can measure the distance in time between taps with this.