+ Odpowiedz na ten temat
Pokaż wyniki od 1 do 9 z 9

Temat: Cocoa bindings

  1. #1
    hop
    Mężczyzna hop jest offline

    Dołączył
    Dec 2008
    Skąd
    Mińsk Maz
    Postów
    41

    Cocoa bindings

    Witam

    Od kilku dni czytam książkę „Cocoa programming for mac os x” autorstwa Aarona Hillegasa. Natknąłem się na pewne zadanie (str. 135 wyd. 2) którego nie mogę rozwiązać :
    „Zrób aby aplikacja sortowała ludzi po długości nazwiska.Zadanie to można wykonać używając jedynie Interface Buildera. Trik polega na użyciu ścieżek-kluczy (keypaths).String ma metodę length ”.
    Próbowałem z marszu to wykonać:
    oto okno mojej aplikacji
    window.jpg
    i okno inspektora:
    inspector1.jpg
    ale konsola pokazała mi błąd:

    10-08-26 15:20:35 q4[923] [<__NSArray0 0x10012b390> addObserver:forKeyPathptions:context:] is not supported. Key path: personName.length

    oprócz tego okno aplikacji nie pokazuje się wogóle.

    próbowałem też tak:

    okno inspektora
    inspector2.jpg


    błąd:

    10-08-26 15:24:33 q4[938] [ addObserver: forKeyPath:@"sortDescriptors.personName.length" options:0x0 context:0x100226bd0] was sent to an object that is not KVC-compliant for the "sortDescriptors" property.

    czy ktoś to rozumie? Rozumiem że obiekt jest niezgodny z KVC ale komunikatu nie rozumiem.Która metoda jest bliższa prawidłowości bo wydaje mi się że już nic nie rozumiem.
    Ostatnio edytowane przez hop ; 26.08.2010 o 17:22
    Komputer: macbook pro
    Telefon: iphone 3g 8gb oraz iphone 16gb
    Cytuj Cytuj  


  2. #2
    Avatar metal_man
    Dołączył
    Nov 2007
    Skąd
    Chorzów
    Postów
    398
    Wiele tutaj zalezy od wersji XCode jaka uzywasz. Skoro masz wydanie 2 ksiazki to czesc rzeczy moze wymagac troche innego podejscia niz jest to napisane w ksiazce.
    Komputer:  MacBook White 13,3" 2,26GHz (Lion 10.7)
    Telefon:  iPhone 3GS (16GB) ;  iPhone 3G (8GB)
    Odtwarzacz:  iPod@iPhone
    Tablet:  iPad2
    Cytuj Cytuj  

  3. #3
    hop
    Mężczyzna hop jest offline

    Dołączył
    Dec 2008
    Skąd
    Mińsk Maz
    Postów
    41
    To prawda, ale prawda jest również taka że ten temat jest również słabo opisany.
    Komputer: macbook pro
    Telefon: iphone 3g 8gb oraz iphone 16gb
    Cytuj Cytuj  

  4. #4
    Avatar krzyspmac
    Dołączył
    Feb 2006
    Skąd
    Warszawa
    Postów
    152
    Udostępnij kod źródłowy tak (np. zip, cały projekt). Na pusto trochę cieżko
    Komputer: PowerMac G5
    Odtwarzacz: F2 ;)
    Krzysiek
    schowekswiata.pl
    Cytuj Cytuj  

  5. #5
    hop
    Mężczyzna hop jest offline

    Dołączył
    Dec 2008
    Skąd
    Mińsk Maz
    Postów
    41
    Witam raz jeszcze, udało mi się wywalić co trzeba z projektu (katalog z aplikacją) i oto on:
    q5.zip
    proszę o wyrozumiałość że trwało to tyle czasu ale szukałem programu do spakowania (w końcu spakowałem zipem).
    Komputer: macbook pro
    Telefon: iphone 3g 8gb oraz iphone 16gb
    Cytuj Cytuj  

  6. #6
    Avatar konole
    Dołączył
    Aug 2009
    Skąd
    Warszawa
    Postów
    395
    yh, po prostu klikasz prawym w katalog i "Kompresuj"
    Komputer:  MacBook Alu 13" C2D | Snow Leopard 10.6.8
    Telefon:  iPhone 4 16GB | 5.0
    Cytuj Cytuj  

  7. #7
    hop
    Mężczyzna hop jest offline

    Dołączył
    Dec 2008
    Skąd
    Mińsk Maz
    Postów
    41
    ok dzięki już to wiedziałem ale chciałem podzielić plik na kawałki
    Komputer: macbook pro
    Telefon: iphone 3g 8gb oraz iphone 16gb
    Cytuj Cytuj  

  8. #8
    hop
    Mężczyzna hop jest offline

    Dołączył
    Dec 2008
    Skąd
    Mińsk Maz
    Postów
    41
    ok,ale jak to zrobić żeby to działało??
    Komputer: macbook pro
    Telefon: iphone 3g 8gb oraz iphone 16gb
    Cytuj Cytuj  

  9. #9
    hop
    Mężczyzna hop jest offline

    Dołączył
    Dec 2008
    Skąd
    Mińsk Maz
    Postów
    41
    Witam
    Próbuję obecnie programować w Xcode 4. Nie jest on może doskonały,ale jest.Próbuję nauczyć się stosowania bind (połączeń).Zrozumiałem narazie tyle że potrzebny jest model ze zmiennymi i metodami (akcesorami) które są KVC. Próbowałem przybindować np. suwak do zmiennej float-to się udaje.Następnie etykietę tekstową do tej samej zmiennej float - to się również udaje.W efekcie można sterować suwakiem etykietę.OK,ale jak przybindować np. checkbox do czegoś żeby np. po wyłączeniu aplikacyjki i włączeniu ponownym było jego ustawienie ponownie takie samo jak przed wyłączeniem aplikacji. Próbowałem przez Shared User Defaults Controller ale to się nie udaje wogóle.Czy takie coś wogóle tak się da zrobić?
    W modelu chcę zadeklarować zmienną która będzie odzwierciedlała stan checkboxu, następnie do tej zmiennej (BOOL) binduję checkbox,
    może ja tu coś nie rozumiem jeśli tak to co robię źle?Wyskakuje małe okienko dialogowe i jak są te ustawienia domyślne to jest wszystko w porządku, ale jak coś zmienię to jest BE.
    Moja klasa modelowa nazywa się Model.
    Gdy pojawia się to okienko dialogowe do bindowania to wybrane jest kontroler:Model,Custom class:Model i to jest dobrze ,natomiast jak zmienię to na : kontroler-Shared User Defaults Controller to wogóle nie jest dobrze (nic się nie zgadza).O co tu chodzi?
    Komputer: macbook pro
    Telefon: iphone 3g 8gb oraz iphone 16gb
    Cytuj Cytuj  

+ Odpowiedz na ten temat