truc bizarre, cette partie de mon code marchait très bien jusqu'à ce
matin, maintenant dès que le panel s'ouvre j'ai droit à gdb et l'appli
plante, même force quit ne la fait pas quittéer, pour quitter l'appli
lancée avec XCode, il faut que je quitte XCode...
if buttonClicked == NSOKButton
files = oPanel.filenames
files.each { |f|
n = File.basename( f.to_s )
item = Folder.new( n, f.to_s, true, 1, @forbidenList )
@root.addItem( item )
@outlineView.reloadData
FileUtils.mkdir_p( "#{@root.path}/#{n}" )
}
end
@prefs.root = @root
@prefs.save
end
end
Nota bene : par différents "puts" je sais que ça déconne juste après la
ligne :
buttonClicked = oPanel.runModal
au départ j'ai cru à une incompatibilité (ou un bugg) de Default Folder
X, mais même désactivé, deloggage reloggage tjs ça coince...
--
La politique est l'art d'empécher les gens
de se méler de ce qui les regarde.
Paul Valéry
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
luc
Une Bévue wrote:
truc bizarre, cette partie de mon code marchait très bien jusqu'à ce matin, maintenant dès que le panel s'ouvre j'ai droit à gdb...
Et il dit quoi gdb ?
if !@root.nil?
Perso, les "if !" je les remplace par "unless" qui est plus joli sémantiquement parlant :)
Ce qui donnerait donc:
unless @root.nil?
if buttonClicked == NSOKButton files = oPanel.filenames files.each { |f| n = File.basename( f.to_s ) item = Folder.new( n, f.to_s, true, 1, @forbidenList ) @root.addItem( item ) @outlineView.reloadData FileUtils.mkdir_p( "#{@root.path}/#{n}" ) } end
- La variable files ne sert pas à grand chose. - Les conventions Ruby veulent qu'en général un block sur plusieurs lignes utilise do...end, et que seuls les blocks sur une ligne utilisent {...}. - Pourquoi les to_s ? - Y a 2 'd' à forbidden. - Le mkdir_p à chaque tour n'est pas très efficace.
Ce qui donnerait donc:
if buttonClicked == NSOKButton Dir.mkdir(@root.path) oPanel.filenames.each do |f| n = File.basename(f) item = Folder.new(n, f, true, 1, @forbiddenList) @root.addItem(item) @outlineView.reloadData Dir.mkdir("#{@root.path}/#{n}") end end
Ok, ça ne résoud pas le problème de base :)
-- Luc Heinrich
Une Bévue <unbewusst.sein@wortanschahung.com.invalid> wrote:
truc bizarre, cette partie de mon code marchait très bien jusqu'à ce
matin, maintenant dès que le panel s'ouvre j'ai droit à gdb...
Et il dit quoi gdb ?
if !@root.nil?
Perso, les "if !" je les remplace par "unless" qui est plus joli
sémantiquement parlant :)
Ce qui donnerait donc:
unless @root.nil?
if buttonClicked == NSOKButton
files = oPanel.filenames
files.each { |f|
n = File.basename( f.to_s )
item = Folder.new( n, f.to_s, true, 1, @forbidenList )
@root.addItem( item )
@outlineView.reloadData
FileUtils.mkdir_p( "#{@root.path}/#{n}" )
}
end
- La variable files ne sert pas à grand chose.
- Les conventions Ruby veulent qu'en général un block sur plusieurs
lignes utilise do...end, et que seuls les blocks sur une ligne utilisent
{...}.
- Pourquoi les to_s ?
- Y a 2 'd' à forbidden.
- Le mkdir_p à chaque tour n'est pas très efficace.
Ce qui donnerait donc:
if buttonClicked == NSOKButton
Dir.mkdir(@root.path)
oPanel.filenames.each do |f|
n = File.basename(f)
item = Folder.new(n, f, true, 1, @forbiddenList)
@root.addItem(item)
@outlineView.reloadData
Dir.mkdir("#{@root.path}/#{n}")
end
end
truc bizarre, cette partie de mon code marchait très bien jusqu'à ce matin, maintenant dès que le panel s'ouvre j'ai droit à gdb...
Et il dit quoi gdb ?
if !@root.nil?
Perso, les "if !" je les remplace par "unless" qui est plus joli sémantiquement parlant :)
Ce qui donnerait donc:
unless @root.nil?
if buttonClicked == NSOKButton files = oPanel.filenames files.each { |f| n = File.basename( f.to_s ) item = Folder.new( n, f.to_s, true, 1, @forbidenList ) @root.addItem( item ) @outlineView.reloadData FileUtils.mkdir_p( "#{@root.path}/#{n}" ) } end
- La variable files ne sert pas à grand chose. - Les conventions Ruby veulent qu'en général un block sur plusieurs lignes utilise do...end, et que seuls les blocks sur une ligne utilisent {...}. - Pourquoi les to_s ? - Y a 2 'd' à forbidden. - Le mkdir_p à chaque tour n'est pas très efficace.
Ce qui donnerait donc:
if buttonClicked == NSOKButton Dir.mkdir(@root.path) oPanel.filenames.each do |f| n = File.basename(f) item = Folder.new(n, f, true, 1, @forbiddenList) @root.addItem(item) @outlineView.reloadData Dir.mkdir("#{@root.path}/#{n}") end end
Ok, ça ne résoud pas le problème de base :)
-- Luc Heinrich
unbewusst.sein
Luc Heinrich wrote:
Perso, les "if !" je les remplace par "unless" qui est plus joli sémantiquement parlant :)
c vrai c + joli...
Ce qui donnerait donc:
unless @root.nil?
if buttonClicked == NSOKButton files = oPanel.filenames files.each { |f| n = File.basename( f.to_s ) item = Folder.new( n, f.to_s, true, 1, @forbidenList ) @root.addItem( item ) @outlineView.reloadData FileUtils.mkdir_p( "#{@root.path}/#{n}" ) } end
- La variable files ne sert pas à grand chose.
OK
- Les conventions Ruby veulent qu'en général un block sur plusieurs lignes utilise do...end, et que seuls les blocks sur une ligne utilisent {...}.
Ah.
- Pourquoi les to_s ?
passeke je range ces pathes dans un fichier de pref yaml qui n'aime pas les objets NSqqc...
- Y a 2 'd' à forbidden.
bon, prudence je dois changer le nom d'un outlet...
- Le mkdir_p à chaque tour n'est pas très efficace.
euh c'est pas à chaque tour, c'est pour chaque dossier source choisi, le mkdir fabrique le dossier destination.
if buttonClicked == NSOKButton Dir.mkdir(@root.path) oPanel.filenames.each do |f| n = File.basename(f) item = Folder.new(n, f, true, 1, @forbiddenList) @root.addItem(item) @outlineView.reloadData Dir.mkdir("#{@root.path}/#{n}") end end
Mouais...
Ok, ça ne résoud pas le problème de base :)
en effet, c'est arrivé quand j'étais en train de traquer mon pb d'espace avec shell...
mais, ça n'a aucun rapport...
du coup, je ne peux + rien tester car je n'ai + de dossier à synchroniser :[
côté gdb, ça se situe qq lignes après un "NSPopAutoreleasePool+364" :
d'après ce que je comprends de gdb et de ce que j'y lis; le pb ne se situe pas côté ruby mais cocoa -- La politique est l'art d'empécher les gens de se méler de ce qui les regarde. Paul Valéry
Luc Heinrich <luc@honk-honk.com> wrote:
Perso, les "if !" je les remplace par "unless" qui est plus joli
sémantiquement parlant :)
c vrai c + joli...
Ce qui donnerait donc:
unless @root.nil?
if buttonClicked == NSOKButton
files = oPanel.filenames
files.each { |f|
n = File.basename( f.to_s )
item = Folder.new( n, f.to_s, true, 1, @forbidenList )
@root.addItem( item )
@outlineView.reloadData
FileUtils.mkdir_p( "#{@root.path}/#{n}" )
}
end
- La variable files ne sert pas à grand chose.
OK
- Les conventions Ruby veulent qu'en général un block sur plusieurs
lignes utilise do...end, et que seuls les blocks sur une ligne utilisent
{...}.
Ah.
- Pourquoi les to_s ?
passeke je range ces pathes dans un fichier de pref yaml qui n'aime pas
les objets NSqqc...
- Y a 2 'd' à forbidden.
bon, prudence je dois changer le nom d'un outlet...
- Le mkdir_p à chaque tour n'est pas très efficace.
euh c'est pas à chaque tour, c'est pour chaque dossier source choisi, le
mkdir fabrique le dossier destination.
if buttonClicked == NSOKButton
Dir.mkdir(@root.path)
oPanel.filenames.each do |f|
n = File.basename(f)
item = Folder.new(n, f, true, 1, @forbiddenList)
@root.addItem(item)
@outlineView.reloadData
Dir.mkdir("#{@root.path}/#{n}")
end
end
Mouais...
Ok, ça ne résoud pas le problème de base :)
en effet, c'est arrivé quand j'étais en train de traquer mon pb d'espace
avec shell...
mais, ça n'a aucun rapport...
du coup, je ne peux + rien tester car je n'ai + de dossier à
synchroniser :[
côté gdb, ça se situe qq lignes après un "NSPopAutoreleasePool+364" :
d'après ce que je comprends de gdb et de ce que j'y lis; le pb ne se
situe pas côté ruby mais cocoa
--
La politique est l'art d'empécher les gens
de se méler de ce qui les regarde.
Paul Valéry
if buttonClicked == NSOKButton Dir.mkdir(@root.path) oPanel.filenames.each do |f| n = File.basename(f) item = Folder.new(n, f, true, 1, @forbiddenList) @root.addItem(item) @outlineView.reloadData Dir.mkdir("#{@root.path}/#{n}") end end
Mouais...
Ok, ça ne résoud pas le problème de base :)
en effet, c'est arrivé quand j'étais en train de traquer mon pb d'espace avec shell...
mais, ça n'a aucun rapport...
du coup, je ne peux + rien tester car je n'ai + de dossier à synchroniser :[
côté gdb, ça se situe qq lignes après un "NSPopAutoreleasePool+364" :
d'après ce que je comprends de gdb et de ce que j'y lis; le pb ne se situe pas côté ruby mais cocoa -- La politique est l'art d'empécher les gens de se méler de ce qui les regarde. Paul Valéry
luc
Une Bévue wrote:
- Pourquoi les to_s ?
passeke je range ces pathes dans un fichier de pref yaml qui n'aime pas les objets NSqqc...
Effectivement, to_s obligatoire donc.
- Le mkdir_p à chaque tour n'est pas très efficace.
euh c'est pas à chaque tour, c'est pour chaque dossier source choisi
Pour chaque dossier choisi, donc à chaque tour du each :) Quoi ? Je pinaille moi ?
côté gdb, ça se situe qq lignes après un "NSPopAutoreleasePool+364" :
Ce genre de problème est quasi systématiquement du à un NSAutoreleasePool qui est détruit et qui contient un NSObject quelconque déjà détruit par ailleurs. Un double release sur un objet qui a son compteur de référence à 1, donc. Il manque un retain qqpart ?
-- Luc Heinrich
Une Bévue <unbewusst.sein@wortanschahung.com.invalid> wrote:
- Pourquoi les to_s ?
passeke je range ces pathes dans un fichier de pref yaml qui n'aime pas
les objets NSqqc...
Effectivement, to_s obligatoire donc.
- Le mkdir_p à chaque tour n'est pas très efficace.
euh c'est pas à chaque tour, c'est pour chaque dossier source choisi
Pour chaque dossier choisi, donc à chaque tour du each :) Quoi ? Je
pinaille moi ?
côté gdb, ça se situe qq lignes après un "NSPopAutoreleasePool+364" :
Ce genre de problème est quasi systématiquement du à un
NSAutoreleasePool qui est détruit et qui contient un NSObject quelconque
déjà détruit par ailleurs. Un double release sur un objet qui a son
compteur de référence à 1, donc. Il manque un retain qqpart ?
passeke je range ces pathes dans un fichier de pref yaml qui n'aime pas les objets NSqqc...
Effectivement, to_s obligatoire donc.
- Le mkdir_p à chaque tour n'est pas très efficace.
euh c'est pas à chaque tour, c'est pour chaque dossier source choisi
Pour chaque dossier choisi, donc à chaque tour du each :) Quoi ? Je pinaille moi ?
côté gdb, ça se situe qq lignes après un "NSPopAutoreleasePool+364" :
Ce genre de problème est quasi systématiquement du à un NSAutoreleasePool qui est détruit et qui contient un NSObject quelconque déjà détruit par ailleurs. Un double release sur un objet qui a son compteur de référence à 1, donc. Il manque un retain qqpart ?
-- Luc Heinrich
unbewusst.sein
Luc Heinrich wrote:
Effectivement, to_s obligatoire donc.
- Le mkdir_p à chaque tour n'est pas très efficace.
euh c'est pas à chaque tour, c'est pour chaque dossier source choisi
Pour chaque dossier choisi, donc à chaque tour du each :) Quoi ? Je pinaille moi ?
non, jamais )))
côté gdb, ça se situe qq lignes après un "NSPopAutoreleasePool+364" :
Ce genre de problème est quasi systématiquement du à un NSAutoreleasePool qui est détruit et qui contient un NSObject quelconque déjà détruit par ailleurs. Un double release sur un objet qui a son compteur de référence à 1, donc. Il manque un retain qqpart ?
je vois mais bon, je ne fais absolument rien dans ce goût là, pas une ligne d'ObjC...
un bug RubyCocoa ?
je vais poster sur le groupe idoine...
ce qui est curieux est que c'est apparu tout d'un coup, quand je corigeais mes pbs d'espaces... -- La politique est l'art d'empécher les gens de se méler de ce qui les regarde. Paul Valéry
Luc Heinrich <luc@honk-honk.com> wrote:
Effectivement, to_s obligatoire donc.
- Le mkdir_p à chaque tour n'est pas très efficace.
euh c'est pas à chaque tour, c'est pour chaque dossier source choisi
Pour chaque dossier choisi, donc à chaque tour du each :) Quoi ? Je
pinaille moi ?
non, jamais )))
côté gdb, ça se situe qq lignes après un "NSPopAutoreleasePool+364" :
Ce genre de problème est quasi systématiquement du à un
NSAutoreleasePool qui est détruit et qui contient un NSObject quelconque
déjà détruit par ailleurs. Un double release sur un objet qui a son
compteur de référence à 1, donc. Il manque un retain qqpart ?
je vois mais bon, je ne fais absolument rien dans ce goût là, pas une
ligne d'ObjC...
un bug RubyCocoa ?
je vais poster sur le groupe idoine...
ce qui est curieux est que c'est apparu tout d'un coup, quand je
corigeais mes pbs d'espaces...
--
La politique est l'art d'empécher les gens
de se méler de ce qui les regarde.
Paul Valéry
- Le mkdir_p à chaque tour n'est pas très efficace.
euh c'est pas à chaque tour, c'est pour chaque dossier source choisi
Pour chaque dossier choisi, donc à chaque tour du each :) Quoi ? Je pinaille moi ?
non, jamais )))
côté gdb, ça se situe qq lignes après un "NSPopAutoreleasePool+364" :
Ce genre de problème est quasi systématiquement du à un NSAutoreleasePool qui est détruit et qui contient un NSObject quelconque déjà détruit par ailleurs. Un double release sur un objet qui a son compteur de référence à 1, donc. Il manque un retain qqpart ?
je vois mais bon, je ne fais absolument rien dans ce goût là, pas une ligne d'ObjC...
un bug RubyCocoa ?
je vais poster sur le groupe idoine...
ce qui est curieux est que c'est apparu tout d'un coup, quand je corigeais mes pbs d'espaces... -- La politique est l'art d'empécher les gens de se méler de ce qui les regarde. Paul Valéry
unbewusst.sein
Luc Heinrich wrote:
euh c'est pas à chaque tour, c'est pour chaque dossier source choisi
Pour chaque dossier choisi, donc à chaque tour du each :) Quoi ? Je pinaille moi ?
Ah oui, je vois ce que tu ferais, un collect sur les dirs et puis un seul mkdir_p sur l'array des dirs collectés ???
+joli en effet. -- La politique est l'art d'empécher les gens de se méler de ce qui les regarde. Paul Valéry
Luc Heinrich <luc@honk-honk.com> wrote:
euh c'est pas à chaque tour, c'est pour chaque dossier source choisi
Pour chaque dossier choisi, donc à chaque tour du each :) Quoi ? Je
pinaille moi ?
Ah oui, je vois ce que tu ferais, un collect sur les dirs et puis un
seul mkdir_p sur l'array des dirs collectés ???
+joli en effet.
--
La politique est l'art d'empécher les gens
de se méler de ce qui les regarde.
Paul Valéry