-(void)startTask;
semble être mise en œuvre privée et, en théorie, ne devrait pas être appelé des classes externes.
Pour répondre à votre question, vous pouvez appeler quelque chose comme ceci:
PtyView *v = [[PtyView alloc] init];
[v startTask];
[v release];
Bien que vous obtiendrez un avertissement disant PtyView
pourrait ne pas répondre à startTask
. Puisque ce n'est pas dans l'interface publique de la classe.
Mise à jour: Le code ci-dessus suppose que lorsque startTask
renvoie, vous avez terminé avec cet objet. Mais quelque chose me dit que vous pourriez utiliser des rappels asynchrones. Si tel est le cas, alors startTask
pourrait revenir immédiatement et vous ne le relâcherez pas encore et encore. Normalement dans ce cas, vous serez notifié par PtyView
de l'achèvement de la tâche. Donc, vous le relâchez lorsque la tâche est terminée.
Update2: Rendre une méthode publique est facile. Vous déclarez que dans l'interface publique (le fichier d'en-tête de la classe):
//in PtyView.h
@interface PtyView
-(void)startTask;
@end
//in PtyView.m
@implementation PtyView
...
-(void)startTask {
//starts task
}
@end
avis qu'il n'y a pas de catégorie définie dans la déclaration d'interface.
Pour ajouter au-dessous, vos classes doivent toujours hériter de NSObject (sauf si vous avez une très bonne raison de ne pas), car cela est nécessaire pour des choses comme la gestion de la mémoire En outre, vous pourriez vouloir vérifier l'obj-c d'un débutant pour avoir un aperçu de ce genre de choses. Il y en a un bon sur http://cocoadevcentral.com/d/learn_objectivec/ –
@Chris: Bien que votre avis soit parfaitement valide, je ne suis pas sûr de ce qui vous a fait croire qu'il n'hérite pas de NSObject? Il n'a certainement pas inclus le code du fichier d'en-tête de 'PtyView'. Néanmoins, c'est un bon point à retenir. – Hemant
Ah. Vous n'avez pas vu la catégorie sur PtyView. Cela m'apprendra à le faire juste après le lever .. :-) –