You're passing an NSNumber* as the argument, not an int_32t. The NSNumber happens to wrap the integer, but it's not an integer.
Note that retainArguments
may expect that the arguments are objects that can be retained. Its documentation does mention that C strings are copied, but it's not immediately obvious what happens to scalars like an int. You probably should avoid retainArguments
and manage retaining and releasing yourself.