Objectif C fait entier de pointeur sans un casting de passage d'objets comme arguments

Je suis en train de faire blackjack en objective C, et éprouve de la difficulté à passer les objets autour. Ma Main classe prend un deck et tire les cartes, de les ajouter à un tableau.

Voici la Main de méthodes:

- (id)init : (Deck*) deck
{
    [self draw: deck];
    [self draw: deck];
    return self;
}

- (void)draw: (Deck*)deck;
{
    Card* C= [deck drawFromDeck];
    [cards addObject: C];
}

Voici la problématique de la partie principale:

Deck* deck=[[Deck alloc] init];
Hand* hand=[[Hand alloc] init: deck ];

La deuxième ligne de qui obtient le "nombre entier à partir de pointeur sans un casting d'erreur". Chaque fois que j'exécute le code, la main n'a jamais de cartes, car il n'y a pas de pont à en tirer (je pense 🙂 ). Ai-je besoin de passer ou analyser le Pont différemment? (si vous avez besoin de moi pour poster tout le code, il suffit de demander)

Merci les gars!! 😀



Modifier avec ce qui concerne à la générosité: Bien que je ne crois que la réponse que j'ai accepté, c'est bien expliqué et , cette question a obtenu une moyenne de plus de 17 vues un jour pour la dernière année et demie. Cela signifie que cette question est probablement la première expérience de beaucoup de gens ont avec stackoverflow, et l'amélioration de l', il ne sera pas seulement de nous montrer sous un meilleur jour, il sera sans doute économiser beaucoup de temps. Alors qu'il a les bonnes réponses, maintenant, je veux faire en sorte qu'il soit aussi parfait que possible, en particulier parce que nous ne savons pas vraiment combien de personnes ont été en mesure de suivre et de résoudre leur problème.

Aller de l'avant et de présenter des modifications à la les réponses existantes ou ajouter vos propres. (Mods, tu penses que ce serait un bon candidat pour le wiki de la communauté?)

Vous ne devriez pas obtenir que l'avertissement de cet extrait de code. Vous pouvez directement couper & coller tout votre principale jusqu'à et y compris ce point?
En particulier, il serait bon de voir le @interface de Pont et de la Main, je pense.
Je soupçonne que l'init: méthode n'a pas été déclarées dans l'interface. Aussi, la convention commune, CrazyJugglerDrummer, est d'inclure l'étiquette pour l'argument suivant dans votre nom de la méthode - par exemple: initWithDeck:(Pont*) le pont

OriginalL'auteur Gordon Gustafson | 2009-04-12