• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    F_OFRProgramovani pro OSX (IDE Xcode, Cocoa, Objektive-C, AppleScript)
    NUCLID
    NUCLID --- ---
    QUITE: jo, searchbox je dobrej napad... pisu si. S poradim kanalu taky pocitam. Checkboxy jsou trochu komplikovany, jak jsem se docetl. Nedaji se tak jednoduse bindovat. Ale aspon mam nad cim premyslet :)
    QUITE
    QUITE --- ---
    NUCLID: Použil bych CheckBoxy na tý opačný straně v "settings" a tu přední část bych nechal jak je. Ale do settings bych ještě přidal nějakej "Search". A nebylo by marný pomocí drag and drop měnit pořadí kanálů na tý čelní straně.
    NUCLID
    NUCLID --- ---
    Potreboval bych radu ohledne GUI...
    Mam v ty aplikacce s televiznim programem seznam stanic, ale potrebuju nejak jednoduse a uzivatelsky prijemne vyresit vyber tech kanalu, ktery me zajimaj. Muzu but udelat tlacitka +/- a z komba vzdycky vybrat kanal, nebo kanaly rovnou zobrazit vsechny a vedle nich dat checkboxy. Nebo i jinak. Co by se vam zdalo nejlepsi? Nemuzu nejak najit program, kterej by podobnou vec resil na takhle malym prostoru.

    NUCLID
    NUCLID --- ---
    Tak pro zajemce jsem nasel zajimavej thread o problematice GC. Dost lidi tam pise svoje zkusenosti a celkove mi vyplyva, ze na 10.6 rozhodne stoji za to GC pouzivat.

    http://www.mail-archive.com/cocoa-dev@lists.apple.com/msg38221.html
    QUITE
    QUITE --- ---
    NUCLID: hmm, tak to nevim ,)) Co ten RunLoop? Ale to tak hádam... ,))
    NUCLID
    NUCLID --- ---
    QUITE: To otaceni s tim imho nesouvisi. I kdyz se hned po startu aplikace ukaze ta tabulka (aniz by doslo na Core Animation), spadne to stejne.

    Jinak ten kod je v mym potomkovi NSTabView a vola [self flipWithDuration]. Nacez v kategorii NSTabView si zjistim handle okna [[self window] windowNumber] a to je cely.
    QUITE
    QUITE --- ---
    NUCLID: Takže Core Animation? Pokud ano, pozor na responder. Jakej máš aktivní objekt při tom otáčení?
    NUCLID
    NUCLID --- ---
    QUITE: Stejne pouzivam funkce, ktery by v 10.4 nechodily, ale nerad se smiruju s tim, ze mam problem v memory managementu. Bral jsem to proste jako otazku cti :) Jak se k tomu stavi Apple nebo obecne vyvojari? Kazdej asi dneska pise pro 10.5+, resi se teda jeste pamet na desktopech?

    Stack trace vypada nejak takhle. Posledni muj kod je #18, kde otacim okno a pak uz se jenom zobrazuje uplne obycejny NSTableView bindnuty na NSArrayController. Bindingy jsou OK rekl bych, protoze s GC to chodi jako vino. Ale z tohohle vypisu proste nepoznam, kde je problem.

    #0 0x855e1318 in objc_msgSend_vtable13
    #1 0x88901aca in -[NSConcreteHashTable assign:key:]
    #2 0x8896e5d7 in -[NSConcreteHashTable insertKnownAbsentItem:]
    #3 0x807c4a2f in -[_NSModelObservingTracker _startObservingModelObject:]
    #4 0x80947721 in -[_NSModelObservingTracker startObservingModelObjectAtReferenceIndex:]
    #5 0x809417aa in -[_NSModelObservingTracker setObservingToModelObjectsRange:]
    #6 0x809415c3 in -[NSTableBinder tableView:updateVisibleRowInformation:]
    #7 0x809414f7 in -[_NSBindingAdaptor tableView:updateVisibleRowInformation:]
    #8 0x80849b9b in -[NSTableView drawRect:]
    #9 0x808c812a in -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inContext:topView:]
    #10 0x809b287e in -[NSView(NSLayerKitGlue) drawLayer:inContext:]
    #11 0x82c523a0 in tiled_layer_render
    #12 0x82bec308 in CAImageProviderThread
    #13 0x82a5c9e8 in CA::timer_callback
    #14 0x8484fa58 in __CFRunLoopRun
    #15 0x8484dc2f in CFRunLoopRunSpecific
    #16 0x88936a24 in -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
    #17 0x8898248a in -[NSRunLoop(NSRunLoop) runUntilDate:]
    #18 0x00005410 in -[NSTabView(CGSSecrets) flipWithDuration:forwards:] at NSTabView(CGSSecrets).m:31
    #19 0x000054fa in -[PSTabView selectTabViewItem:] at PSTabView.m:20

    QUITE
    QUITE --- ---
    NUCLID: když to chodí s garbage collectorem tak bych to neřešil ,)))) nastav si minimální build na 10.5 a je to ,))))))))) Co je to za Framework a za jakym kódem to spadne?

    Teď řešim IKImageBrowserView. Funguje mi dragndrop tam i zpátky jenom řešim dvě věci který v dokumentaci nemůžu najít:
    1) když mam složku v IKImageBrowserView a na tu poklikam, otevře se mi ve Findru ale já jí potřebuju otevřít v tom IKImageBrowserView...v dokumentaci o tom neni ani ň
    2) přetahovaný objekty se defaultně kopírujou ale já je potřebuju přesouvat a nemůžu najít kde je to popsaný

    Neví někdo? ,)
    NUCLID
    NUCLID --- ---
    Jak nejlip hledat zombie objekty? Mam aplikaci, ktera mi spadne kdyz arraycontroller odkazuje na pole s vice nez jednim objektem. Jeden objekt chodi v pohode, dva uz ne. Slitne to na bad access nekde hluboko ve frameworku a vubec nemam poneti, co je spatne. Jsem sice v Ccku zacatecnik, ale daval jsem si na memory management dost pozor. Mam tam nekolik tabulek a vsechny chodej dobre, az kdyz jsem pridal posledni uplne nejjednodussi, posralo se to. Se zapnutym garbage collectorem to chodi.

    Zkousel jsem Instruments a ty mi reknou, ze tam je jeden zombie objekt, ale vic nic. Tohle me na ObjC fakt vadi. V Jave mam krasnej stacktrace a behem par vterin vim, co je spatne. Tady se zastavi nekde v assembleru a vim hovno :)
    NUCLID
    NUCLID --- ---
    NUCLID: Tak trik je v tom, ze je potreba vytvorit instanci progressIndicatoru primo v potomkovi NSCell a ve vykreslovaci metode jenom nastavovat parametry.
    QUITE
    QUITE --- ---
    NUCLID: zkusil bych si pohrát s pozicováním v IB.., pak bych zkusil jestli nepomůže toto:
    http://developer.apple.com/mac/library/documentation/cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/occ/instm/NSWindow/resizeFlags

    a pak bych zkusil googlit něco ve tvaru ...DidChange... NSWindow přímo nic takovýho nemá (kromě těch resizeFlags) ale možná to má NSCell..ale teď jsem línej to hledat. ,)
    NUCLID
    NUCLID --- ---
    Nevite jak vynutit prekresleni bunky v tabulce? Mam svoji vlastni implementaci NSCell a kdyz zmenim velikost okna, tak se sice vykresluje, ale zustava i stara grafika. Je to muj prvni pokus o ObjC/Cocoa aplikaci, jinak jsem javista, takze jeste nemam ten mozek uplne ohnutej na Cocoa filozofii :)

    Po startu aplikace:


    Po zmene velikosti okna se spatne prekresluje progress indicator:
    QUITE
    QUITE --- ---
    Nevíte někdo jaký framework řeší práci se soubory? Nebo o nějakém examplu co by řešil základní "Finder" funkcionalitu? Dík.
    REDGUY
    REDGUY --- ---
    TIGU: No, chci neco, co bych si mohl cist na zachode nebo v metru, prave abych se do toho nemusel dostavat sam.
    TIGU
    TIGU --- ---
    Je to to same, akorát nepíšeš pro cocoa touch, ale pro cocoa zapni si Xcode a založ si Cocoa projekt a během pár minut se do toho dostaneš i sám ... tu referenční příručku občas stejně budeš muset otevřít.
    REDGUY
    REDGUY --- ---
    Muzete mi nekdo prosim doporucit dobrou knihu o programovani pro OS X? Objective-C umim, zvladam psat pro iPhone, kterej je asi v mnohem podobnej, takze nepotrebuju vylozene zacatecnicky veci, na druhou stranu se mi nechce cist referencni prirucku.
    VIRUS31
    VIRUS31 --- ---
    okej, diky moc :)
    a hezky vanoce a spoustu uspesnych kodu do novyho roku ;)
    SHAGA
    SHAGA --- ---
    SHAGA
    SHAGA --- ---
    VIRUS31: nějakej frontend k diffu, v podstatě. google mi poradil FileMerge, kterej by měl bejt součástí xcode. (Ano, je, mám ho na disku).
    Kliknutím sem můžete změnit nastavení reklam