 <p>You're best off creating a new timer. If the class doesn't provide an interface for changing that attribute, then you should consider it private and read-only.</p> <p>It's not even possible in this case to do the usual end run around that, using KVC:</p> <pre><code>[timer setValue:newNumber forKey:@"userInfo"]; </code></pre> <p>since <code>NSTimer</code> is not KVC-compliant for that key.</p>