• ú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)
    VIRUS31
    VIRUS31 --- ---
    SHAGA: visual studio je taky luxusni, mnohaleta zkusenost skrz ruzne verze.. xcode bohuzel pokulhava.
    SHAGA
    SHAGA --- ---
    NUCLID: Javovský nástroje jsou v tomhle ohledu naprostej luxus a máloco na ně má. (disclaimer: vůbec neznám visual studio). Taky dycky pláču, když musím někam jinam něco jinýho.
    NUCLID
    NUCLID --- ---
    Je to trapeni delat v XCode :) Dneska jsem celej den psal unit testy a bez nativni podpory pokryti, s mizernejma moznostma refactoringu a bez moznosti (aspon nevim jak) debugovani unit testu je to peknej vopich. S IntelliJ Idea se to fakt neda srovnat. Produktivita je uplne nekde jinde. Jestli JetBrains nekdy vydaj Ideu pro ObjectiveC, tak to bude asi nejvetsi revoluce ve vyvoji pro Maca.
    NUCLID
    NUCLID --- ---
    Nevite nekdo, jestli je mozny pustit v XCode jen nejakou sadu unit testu, aniz by se spustila cela testovana aplikace? V Jave to tak bezne delam. Napisu si tridu a k ni test a pracuju nezavisle na zbytku aplikace.
    QUITE
    QUITE --- ---
    KUBBING: uvažuju o Mac dev programu ale takhle daleko jsem se zatim nedostal.

    Apropos, nemáte někdo zkušenost s "uploadem" na apple.com/downloads ? Dal jsem tam dvě aplikace ale ani jedna neprošla..a bez vysvětlení..ty podmínky toho co se tam může vkládat jsem imho celkem splnil. ,))
    NUCLID
    NUCLID --- ---
    Hodil jsem na web prvni verejnou verzi TV Junkie, tak kdo ma zajem, stahujte na http://tvjunkie.proof.cz
    Je to muj prvni projekt v Objective-C / Cocoa, takze urcite je co doladovat, ale televizni program to ukazuje :)

    KUBBING
    KUBBING --- ---
    Ahoj, chci se zeptat ;). Jde vam zaplatit normalne kartou iPhone deve program ($99)? Me to pise, ze v CR neni Apple online store a mam udaje o karte faxovat do Applu. Diky
    QUITE
    QUITE --- ---
    NUCLID: omg.. on to fakt byl ten NSLog... :// to jsem netušil že může udělat takovej binec. Teď už to běží perfektně.
    Díky moc!!
    NUCLID
    NUCLID --- ---
    QUITE: Pridal jsem si jeste do plistu lastName s hodnotou true.
    Problem v tvem pripade byl nejspis ten, ze ses snazil vypisovat hodnotu v NSLog pomoci %@ ne? To na BOOL nefunguje. Bud ho vypises jako char, nebo to udelej jako ja. Kazdopadne normalne ti ted budou fungovat testy if (firstName)...
    NUCLID
    NUCLID --- ---
    QUITE:
    #import <Foundation/Foundation.h>
    
    int main (int argc, const char * argv[]) {
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
        NSString *filePath = @"quite.plist";
    	
        if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
    		NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
    		NSDictionary *dict = [array objectAtIndex:0];
    		
    		NSNumber *firstName = [dict objectForKey:@"firstName"];
    		NSNumber *lastName = [dict objectForKey:@"lastName"];
    
    		BOOL first = [firstName boolValue];
    		BOOL last = [lastName boolValue];
    		
    		NSLog(@"firstName = %@", first ? @"true" : @"false");
    		NSLog(@"lastName = %@", last ? @"true" : @"false");
    				
    		[array release];
        } else {
    		NSLog(@"%@ not found at %@", filePath, [[NSFileManager defaultManager] currentDirectoryPath]);
    	}
    	
        [pool drain];
        return 0;
    }
    


    Running…
    2010-01-28 19:34:38.955 PList[7633:a0f] firstName = false
    2010-01-28 19:34:38.958 PList[7633:a0f] lastName = true
    QUITE
    QUITE --- ---
    NUCLID:

    <plist version="1.0">
    <array>
    <dict>
    <key>firstName</key>
    <false/>
    <key>adresa</key>
    <string>http://www.seznam.cz</string>
    <key>trvani</key>
    <string>20 sec</string>
    </dict>
    </array>
    </plist>
    NUCLID
    NUCLID --- ---
    QUITE: muzes poslat ukazku toho plistu?
    QUITE
    QUITE --- ---
    NUCLID: dělá to totéž, s 0 to píše (null), s 1 to padne
    NUCLID
    NUCLID --- ---
    QUITE: Tohle taky nechodi?

    usedBOOL = [[[contactsFile objectAtIndex:0] objectForKey:@"firstName"] isEqual:@"1"];
    QUITE
    QUITE --- ---
    NUCLID: ne-e ,) firstName tam zůstalo z doby kdy jsem ten .plist poprvé rozjel a nahrál do něj sample data (to byl string), teď je ten key nastavený na bool a jsou tam jenom jedničky a nuly (checkboxy). ..a když jsem to zkoušel načítat jako NSString, psalo to sice 1 a 0 ale podmínkou to neprošlo (viz níž).
    NUCLID
    NUCLID --- ---
    QUITE: Jenom ze zvedavosti: opravdu mas pod klicem "firstName" ulozenej BOOL? Neni chyba v tom, ze se snazis delat BOOL z krestniho jmena?
    QUITE
    QUITE --- ---
    NUCLID: nic. jediný k čemu jsem došel je následující: když to načítam takhle:

    usedBOOL = [[contactsFile objectAtIndex:0] boolForKey:@"firstName"];

    Tak to padá jenom když je bool YES, když je NO, tak to vypíše že usedBOOL je (NULL) ale jede to dál.. Ale co to může znamenat nechápu..

    A když to rozložim tak to padá u boolValue... A console u toho taky nic nepíše...
    NUCLID
    NUCLID --- ---
    QUITE: Vis na cem presne to padne? Zkus ten radek rozebrat a udelej si pomocne promenne... jakoze vysledek objectAtIndex si uloz, pak nad tim zavolej objectForKey a pak boolValue. V debuggeru pak snadno zjistis, co se mu nelibi.
    QUITE
    QUITE --- ---
    QUITE: ostatní sloupce fungujou bezchybně (za předpokladu že jsou NSString)
    QUITE
    QUITE --- ---
    NUCLID: jj, tohle řešení jsem zkoušel.. ve tvaru:

    usedBool = [[[contactsFile objectAtIndex:jsmeNaRadkuDat] objectForKey:@"firstName"] boolValue];

    (zkoušel jsem usedBool jako BOOL i jako int)

    Problém je, že to celý na tomhle řádku bez jediný hlášky nebo chyby v Console.app padne.. Dokonce i když je ten .plist prázdnej, spustim, pomocí NSTableView (NSArrayController) tam něco nahraju. V momentě kdy nahraju data, dojdu na řádek, konec.
    Kliknutím sem můžete změnit nastavení reklam