Frage

wenn ich verwende generasacodicetagpre.

in der Methode - (void) uploaddidend: (ID) Sender

Welches Objekt ist Absender?Im Anruf ist Foo eine benutzerdefinierte Klasse?Wie kann ich diesen Absender in mein Objekt konvertieren?

Ich versuche zu werfen, aber ich habe generasacodicetagpre.

In Benachrichtigungen benutze ich einen Cast von Sender an NSNotification und Benachrichtigung über die Objekteigenschaft, aber für NSTHREAD wurde ich nicht gefunden.

danke.

War es hilfreich?

Lösung

You can think of:

[self performSelectorOnMainThread:@selector(uploadDidEnd:)
      withObject:foo
      waitUntilDone:YES]

as sort of the same as:

[self uploadDidEnd:foo];

Are you sure that's what you're trying to do?

If so: inside your uploadDidEnd: implementation, you can cast foo to whatever object type it really is like so:

- (void)uploadDidEnd:(id)sender
{
  FooClass *foo = (FooClass *)sender;
  [foo doSomething]; // or whatever
}

Andere Tipps

  1. The argument declared a sender is the only parameter passed to your method. performSelectorOnMainThread:withObject:waitUntilDone: passes its argument after withObject to the selector to be performed, so yes, here foo will be passed to uploadDidEnd:

  2. Casting is not a solution. Objective-C is a dynamic language, so even if casting eliminates compiler warnings, the actual implementation of the object wouldn't change, so it naturally would not repond to messages.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top