OVH Cloud OVH Cloud

[cocoa] AGAIN warning: '...' as arguments.)

8 réponses
Avatar
une.bevueVOTEZ
Bon, là, je suis sûr que les méthodes ajoutées afin de gérer les
notifications sont dans les bons fichiers. Cependant j'ai le même type
d'erreur que précédemment.

la ligne en question :
[nc postNotificationName:@"YTHColorChanged" object:color];

le(s) warning(s) :
PreferenceController.m:41: warning: '...' as arguments.)
PreferenceController.m:41: warning: will be assumed to return 'id' and
accept
PreferenceController.m:41: warning: (Messages without a matching method
signature
PreferenceController.m:41: warning: 'NSNotification' may not respond to
'-postNotificationName:object:'


bon, bien sûr, ça marche, quand une notification est postée (changement
de la couleur de background d'unetableView) je récupère la couleur dans
cette table...

j'utilise tjs en bouquin écrit pour 10.2 sur 10.4.1...
--
une bévue

8 réponses

Avatar
DINH Viêt Hoà

Bon, là, je suis sûr que les méthodes ajoutées afin de gérer les
notifications sont dans les bons fichiers. Cependant j'ai le même type
d'erreur que précédemment.

la ligne en question :
[nc postNotificationName:@"YTHColorChanged" object:color];

le(s) warning(s) :
PreferenceController.m:41: warning: '...' as arguments.)
PreferenceController.m:41: warning: will be assumed to return 'id' and
accept
PreferenceController.m:41: warning: (Messages without a matching method
signature
PreferenceController.m:41: warning: 'NSNotification' may not respond to
'-postNotificationName:object:'


bon, bien sûr, ça marche, quand une notification est postée (changement
de la couleur de background d'unetableView) je récupère la couleur dans
cette table...


es-tu sûr d'avoir un :
#import <Foundation/Foundation.h>

au début de ton source ? Cela permet de prédéclarer pas mal de choses
classiquement utilisées.

--
DINH V. Hoa,

"Non mais tu me prends pour une buse ou quoi ?" -- K.

Avatar
une.bevueVOTEZ
DINH Viêt Hoà wrote:

es-tu sûr d'avoir un :
#import <Foundation/Foundation.h>


j'ai ça dans le fichier incriminé (PreferenceController.m)
#import <Foundation/Foundation.h>
#import "PreferenceController.h"

et dans PreferenceController.h :
#import <AppKit/AppKit.h>

quelle est la relation entre les deux, par ex, si je mets tous les
imports dans le fichier *.h, est-ce que c'est équivalent à en mettre une
partie dans *.m l'autre dans *.h ???

--
une bévue

Avatar
ftestuz
Une bévue wrote:

Bon, là, je suis sûr que les méthodes ajoutées afin de gérer les
notifications sont dans les bons fichiers. Cependant j'ai le même type
d'erreur que précédemment.

la ligne en question :
[nc postNotificationName:@"YTHColorChanged" object:color];

le(s) warning(s) :
PreferenceController.m:41: warning: '...' as arguments.)
PreferenceController.m:41: warning: will be assumed to return 'id' and
accept
PreferenceController.m:41: warning: (Messages without a matching method
signature
PreferenceController.m:41: warning: 'NSNotification' may not respond to
'-postNotificationName:object:'


Tu es sûr que nc est bien un NSNotificationCenter

NSNotificationCenter *nc;

et obtenu par

nc=[NSNotificationCenter defaultCenter];

Là il dit que c'est un NSNotification, qui en effet ne possède pas cette
méthode. Attention si tu as activé la completion automatique des noms,
on peut se faire piéger par des noms proches.

bon, bien sûr, ça marche, quand une notification est postée (changement
de la couleur de background d'unetableView) je récupère la couleur dans
cette table...


Et ça marche ? Curieux.

j'utilise tjs en bouquin écrit pour 10.2 sur 10.4.1...


A ma connaissance, les notifications n'ont pas changé entre temps.

--
Frédéric Testuz

Avatar
une.bevueVOTEZ
Frédéric Testuz wrote:

Tu es sûr que nc est bien un NSNotificationCenter


oui, oui, mais ces warnings ont disparus...

j'ai du faire un clean all in between (après un *.h modifié?)


mais sur un autre essai j'ai le même pb :

AppController.m:50: warning: '...' as arguments.)
AppController.m:50: warning: will be assumed to return 'id' and accept
AppController.m:50: warning: (Messages without a matching method
signature
AppController.m:50: warning: 'NSOpenPanel' may not respond to
'-beginSheetDirectory:file:types:modalForWindow:modalDelegate:didEndSele
ctor:contextInfo:'


avec :

- (IBAction)open:(id)sender
{
NSOpenPanel *panel = [NSOpenPanel openPanel];

// Exécuter le panneau ouvert
[panel beginSheetDirectory:nil
file:nil
types:[NSImage imageFileTypes]
modalForWindow:[stretchView window]
modalDelegate:self
didEndSelector:

@selector(openPanelDidEnd:returnCode:contextInfo:)
contextInfo:nil];
} //ligne 50


à l'éxécution le panel ne s'ouvre pas et j'ai ce message :

beginSheetDirectory:file:types:modalForWindow:modalDelegate:didEndSelect
or:contextInfo:]: selector not recognized [self = 0x36dca0]

j'avoue ne pas très bien piger la syntaxe de :

didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:)

manque pas des trucs du genre *:nil ? dans les () ? genre :
openPanelDidEnd:nil returnCode:nil ...

--
une bévue

Avatar
ftestuz
Une bévue wrote:

Frédéric Testuz wrote:

Tu es sûr que nc est bien un NSNotificationCenter


oui, oui, mais ces warnings ont disparus...

j'ai du faire un clean all in between (après un *.h modifié?)


mais sur un autre essai j'ai le même pb :

AppController.m:50: warning: '...' as arguments.)
AppController.m:50: warning: will be assumed to return 'id' and accept
AppController.m:50: warning: (Messages without a matching method
signature
AppController.m:50: warning: 'NSOpenPanel' may not respond to
'-beginSheetDirectory:file:types:modalForWindow:modalDelegate:didEndSele
ctor:contextInfo:'


C'est beginSheetForDirectory:....

Ne pas oublier le *For* (haa la syntaxe :-)

avec :

- (IBAction)open:(id)sender
{
NSOpenPanel *panel = [NSOpenPanel openPanel];

// Exécuter le panneau ouvert
[panel beginSheetDirectory:nil
file:nil
types:[NSImage imageFileTypes]
modalForWindow:[stretchView window]
modalDelegate:self
didEndSelector:

@selector(openPanelDidEnd:returnCode:contextInfo:)
contextInfo:nil];
} //ligne 50


à l'éxécution le panel ne s'ouvre pas et j'ai ce message :

beginSheetDirectory:file:types:modalForWindow:modalDelegate:didEndSelect
or:contextInfo:]: selector not recognized [self = 0x36dca0]

j'avoue ne pas très bien piger la syntaxe de :

didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:)

manque pas des trucs du genre *:nil ? dans les () ? genre :
openPanelDidEnd:nil returnCode:nil ...


Non c'est bon, tu dois donner l'énoncé de la méthode. Méthode qui sera
appelée lorsque l'utilisateur aura cliqué sur Ouvrir ou Annuler.

--
Frédéric Testuz


Avatar
une.bevueVOTEZ
Frédéric Testuz wrote:

Ne pas oublier le *For* (haa la syntaxe :-)


OK, merci, c'est bon, pas facile à trouver...
--
une bévue

Avatar
ftestuz
Une bévue wrote:

Frédéric Testuz wrote:

Ne pas oublier le *For* (haa la syntaxe :-)


OK, merci, c'est bon, pas facile à trouver...


Vieilles leçons durement acquises :-)

À propos d'outils pouvant aider, j'utilise AppKiDo pour parcourir la
documentation sur Cocoa (Foundation + AppKit) et d'autres frameworks. Je
le trouve bien, mais il y en a d'autres.

--
Frédéric Testuz


Avatar
une.bevueVOTEZ
Frédéric Testuz wrote:

Vieilles leçons durement acquises :-)


ben oui, je me suis donné quelques jours pour apprécier Cocoa-Obj-C
(versus SwingX-java) étant donné qu'il vaut mieux oublier Cocoa-Java...

Il semble que ceux qui persisteront en Coco-Java sont ceux, plus calés
que moi, capables de faire le bridge eux-mêmes, du coup ils ne sont plus
dépendants du bon vouloir d'Apple...

bon, les difficultés du passage java-->obj-c ne sont pas là où je
croyais ;-)


À propos d'outils pouvant aider, j'utilise AppKiDo pour parcourir la
documentation sur Cocoa (Foundation + AppKit) et d'autres frameworks. Je
le trouve bien, mais il y en a d'autres.


je l'ai, celui-là...
--
une bévue