Ανάπτυξη εφαρμογών Mac For LuckyTemplates Cheat Sheet

Η ανάπτυξη εφαρμογών Macintosh απαιτεί δημιουργικότητα, δεξιότητες προγραμματισμού Objective-C, λίγη υπομονή και καλή βοήθεια για την επιμονή για την υλοποίηση, τη βελτίωση και την παράδοση της εφαρμογής Macintosh σε καλή λειτουργική κατάσταση στους χρήστες σας. Στο δρόμο σας προς αυτόν τον προορισμό, θα αντιμετωπίσετε ορισμένες προκλήσεις που θα δοκιμάσουν τις δεξιότητές σας στον προγραμματισμό και στην επίλυση προβλημάτων. Πρέπει να αντιμετωπίσετε (μεταξύ άλλων) τη χρήση εκπροσώπων για την υλοποίηση επανακλήσεων εφαρμογών. χρήση πλαισίων που δεν είναι Objective-C από την Apple. και ενσωματώνοντας κώδικα C++ στις εφαρμογές σας.

Εφαρμογή επανάκλησης σε εφαρμογές Macintosh

Η ανάπτυξη εφαρμογών Macintosh χρησιμοποιεί επανακλήσεις για να επιτρέψει στο Mac OS X να εκτελεί κώδικα εντός της εφαρμογής σας για συγκεκριμένες λειτουργίες. Εάν δημιουργείτε μια τυπική εφαρμογή που βασίζεται σε παράθυρο ή σε έγγραφα Macintosh, ο πρώτος κώδικας που θα εκτελέσει το OS X είναι σε μία από τις ακόλουθες μεθόδους επανάκλησης που πρέπει να δημιουργήσετε για την εφαρμογή σας, ανάλογα με τη σχεδίαση της εφαρμογής:

  • Εφαρμογές που βασίζονται σε παράθυρο: (void)applicationDidFinishLaunching:(NSNotification*)aNotification

  • Εφαρμογές που βασίζονται σε έγγραφα: (void)windowControllerDidLoadNib:(NSWindowController*)windowController

Η επιστροφή κλήσης είναι απλώς μια μέθοδος που το λειτουργικό σύστημα τελικά εκτελεί ενώ προσπαθεί να παρέχει ή να ανακτήσει πληροφορίες από την εφαρμογή σας. Ο κώδικας της εφαρμογής σας θα εκτελέσει μια μέθοδο για μια κλάση Cocoa όπου η εφαρμογή σας θα έχει την ευκαιρία να παρέχει το όνομα μιας μεθόδου μιας από τις κλάσεις σας, που θα κληθεί σε ένα αντικείμενο αυτής της κλάσης που θα πρέπει επίσης να παρέχει η εφαρμογή σας.

Ο πληρεξούσιος είναι ένα βοηθητικό αντικείμενο, το οποίο χρησιμοποιεί μια κλάση Cocoa για να επεκτείνει τη λειτουργικότητα της κλάσης επιτρέποντάς σας να εφαρμόσετε κώδικα που θα εκτελεί η κλάση Cocoa σε ορισμένες περιπτώσεις. Μια κλάση Cocoa ελέγχει το αντικείμενο αντιπροσώπου της (εάν έχει εκχωρηθεί σε κάποιον) για το εάν ο πληρεξούσιος παρέχει μια υλοποίηση μιας συγκεκριμένης μεθόδου. Εάν ο πληρεξούσιος έχει αυτήν τη μέθοδο, η κλάση Cocoa εκτελεί αυτήν τη μέθοδο. Εάν ο πληρεξούσιος δεν εφαρμόσει τη συγκεκριμένη μέθοδο, η κλάση Cocoa είτε χρησιμοποιεί μια δική της προεπιλεγμένη μέθοδο είτε καταγράφει ένα σφάλμα. Οι περισσότεροι εκπρόσωποι πρέπει να ενσωματώσουν ένα συγκεκριμένο πρωτόκολλο που καθορίζει ποιες μεθόδους μπορούν να εφαρμόσουν. οι εκπρόσωποι του κώδικά σας πρέπει να χρησιμοποιούν τις μεθόδους υλοποίησης από το συγκεκριμένο πρωτόκολλο που αναμένει ο πληρεξούσιος.

Ακολουθούν μερικά από τα αντικείμενα Cocoa που μπορούν να χρησιμοποιήσουν πληρεξούσιους για την εκτέλεση του κώδικά σας:

  • NSTableView. Το NSTableView δέχεται έναν πληρεξούσιο που υπακούει στο πρωτόκολλο NSTableViewDelegate. Αυτό περιλαμβάνει 20 έως 30 μεθόδους που μπορεί να εφαρμόσει το αντικείμενο αντιπροσώπου της εφαρμογής σας για να υποστηρίξει την ανάγκη της εφαρμογής σας να γνωρίζει τι κάνει το NSTableView. Υπάρχουν μέθοδοι που θα καλούνται στην εφαρμογή σας όταν χρειάζεται να γνωρίζει και να αντιδρά σε μια ενέργεια, όπως όταν ένας χρήστης κάνει μια επιλογή στον πίνακα ή όταν αλλάζει το μέγεθος μιας στήλης.

  • Εφαρμογή NSA. Μπορείτε να εκχωρήσετε ένα NSApplicationDelegate για να χειριστεί ορισμένες από τις μεθόδους που θα λάβει μια παρουσία NSApplication (η εφαρμογή σας). Αυτές οι μέθοδοι ενδέχεται να κληθούν ακριβώς πριν ή αμέσως μετά την εκτέλεση μιας άλλης μεθόδου από την εφαρμογή σας, έτσι ώστε η εφαρμογή σας να μπορεί να προετοιμαστεί.

  • NSWindow. Ένα NSWindowDelegate που έχει εκχωρηθεί σε ένα από τα παράθυρα της εφαρμογής σας θα δώσει στην εφαρμογή σας την ευκαιρία να ανταποκριθεί σε αλλαγές μεγέθους, μετακίνησης ή άλλων συμβάντων παραθύρου ενός χρήστη.

  • NSMmenu. Εφαρμόζετε ένα NSmenuDelegate για την υποστήριξη συμβάντων που συμβαίνουν όταν ένας χρήστης αλληλεπιδρά με μενού στην εφαρμογή σας.

Μη αντικειμενικά πλαίσια C σε εφαρμογές Macintosh

Η Apple παρέχει πολλά πλαίσια ανάπτυξης εφαρμογών Macintosh (βιβλιοθήκες κωδικών) που μπορεί να καλέσει η εφαρμογή σας για να εκτελέσει τις χιλιάδες λειτουργίες στο OS X. Πολλά από αυτά τα πλαίσια, όπως το PDF Kit, αποτελούνται από κατηγορίες Objective-C, από τις οποίες η εφαρμογή σας μπορεί να δημιουργήστε και χρησιμοποιήστε αντικείμενα στις εφαρμογές σας. Ωστόσο, ορισμένα από αυτά τα πλαίσια είναι απλώς βιβλιοθήκες λειτουργιών που μπορεί να εκτελέσει η εφαρμογή σας.

Για παράδειγμα, το πλαίσιο CFNetwork είναι ένα σύνολο λειτουργιών που μπορεί να χρησιμοποιήσει η εφαρμογή σας για την εκτέλεση βελτιστοποιημένων συνδέσεων δικτύου. Η κλάση NSURL παρέχει ένα καλό σύνολο βασικών λειτουργιών δικτύου που είναι εξαιρετικές για την ανάκτηση δεδομένων χρησιμοποιώντας μια διεύθυνση URL. Εάν η εφαρμογή σας απαιτεί περισσότερο έλεγχο στις επικοινωνίες δικτύου που εκκινεί, θα πρέπει να χρησιμοποιήσετε το πλαίσιο CFNetwork και τις λειτουργίες του. Θα μπορούσατε να χρησιμοποιήσετε τον ακόλουθο κώδικα για να προετοιμάσετε ένα αίτημα HTTP για μετάδοση σε μια συγκεκριμένη διεύθυνση URL:

CFStringRef httpBody = CFSTR( " );
CFStringRef headerFieldName = CFSTR( "Cookie" ); // προσθήκη συγκεκριμένου cookie στο αίτημα HTTP
CFStringRef headerFieldValue = CFSTR( "loginID=my_user_name; password=my_password;" );
CFStringRef url = CFSTR( "www.diabeticpad.com" );
CFURLRef urlRef = CFURLCreateWithStrign( kCFAllocatorDefault, url, NULL );
CFStringRef requestMethod = CFSTR( "GET" );
CFHTTPMessageRef αίτημα = CFHTTPMessageCreateRequest( kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1 );
CFHTTPMessageSetBody( αίτημα, httpBody );
// προσθέστε το cookie
CFHTTPMessageSetHeaderFieldValue( αίτημα, headerFieldName, headerFieldValue );
CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage( αίτημα );

Μόλις ο κωδικός σας έχει το σειριακό αίτημα, η εφαρμογή σας μπορεί στη συνέχεια να ανοίξει μια ροή εγγραφής για να παραδώσει το αίτημα στον προορισμό του.

Όλα τα πλαίσια της Apple που βασίζονται σε C παρέχουν ένα σύνολο λειτουργιών για την εκτέλεση αυτού του τύπου προγραμματισμού χαμηλότερου επιπέδου. Ο κώδικάς σας θα γίνει πιο περίπλοκος, αλλά η Apple δεν παρέχει κλάσεις Objective-C για όλα τα πλαίσια της. Εάν πραγματικά χρειάζεστε τη διαθέσιμη λειτουργικότητα σε ένα από αυτά τα πλαίσια, αυτός είναι ο μόνος τρόπος για να επιτύχετε τους στόχους της εφαρμογής σας. Τα ακόλουθα πλαίσια δεν παρέχουν κλάσεις Objective-C:

  • Εργαλειοθήκη ήχου

  • CFNetwork

  • Πυρήνας MIDI

  • Κείμενο πυρήνα

  • Υπηρεσία καταλόγου (όπως LDAP και Open Directory)

  • Ασφάλεια

Εάν θέλετε να δημιουργήσετε εφαρμογές που μπορούν να εκμεταλλευτούν πλήρως τις δυνατότητες του OS X, πρέπει να είστε έτοιμοι να υποστηρίξετε τη χρήση βιβλιοθηκών κωδικών που δεν ανήκουν στο Objective-C.

Κωδικός C++ σε εφαρμογές Macintosh Objective-C

Το Objective-C παρέχει αντικειμενοστραφή χαρακτηριστικά για την ανάπτυξη εφαρμογών Macintosh, όπως κληρονομικότητα και πολυμορφισμό. Η γλώσσα βασίζεται στη γλώσσα προγραμματισμού C. Επομένως, μπορείτε να χρησιμοποιήσετε τις γνώσεις προγραμματισμού C για να κωδικοποιήσετε μέσα στο Objective-C. Το Objective-C++ είναι ένας μηχανισμός γέφυρας που επιτρέπει στις μονάδες πηγής Objective-C να λειτουργούν με κλάσεις Objective-C++, οι οποίες θα μπορούσαν να μεταγλωττίσουν και να συνδεθούν με βιβλιοθήκες κώδικα C++.

Το ακόλουθο απλό παράδειγμα τετράγωνου πίνακα δείχνει τα περιεχόμενα ενός αρχείου κεφαλίδας C++ για μια κλάση Matrix. Η κλάση Matrix συνοδεύεται από τον τυπικό κατασκευαστή και καταστροφέα για μια κλάση C++ και οι μέθοδοι είναι αυτές που θα περιμένατε για ένα βασικό αντικείμενο τετραγωνικού πίνακα:

τάξη Matrix
{
δημόσιο:
    Matrix( int inSize );
    εικονική ~Matrix();
    int getSize( void );
    int getDeterminant( void );
    void setElement( int inRow, int inCol, int inValue );
    int getElement( int inRow, int inCol );
    Operator matrix+( const Matrix& inAddend );
ιδιωτικός:
    int m_size;
    int[][] m_elements;
};

Για να χρησιμοποιήσετε το Objective-C++, οι μονάδες κλάσης Objective-C++ πρέπει να χρησιμοποιούν την επέκταση αρχείου .mm. Αυτό λέει στον μεταγλωττιστή του Xcode ότι η τάξη πρόκειται να μεταγλωττιστεί χρησιμοποιώντας το Objective-C++, το οποίο θα επιτρέψει στην τάξη σας να χρησιμοποιεί λέξεις-κλειδιά της γλώσσας C++. Χρησιμοποιώντας το Objective-C++, η εφαρμογή σας θα μπορούσε να δημιουργήσει ένα αντικείμενο Matrix για να εκτελέσει βασικές λειτουργίες, όπως η προσθήκη δύο αντικειμένων Matrix μαζί. Αυτό προϋποθέτει ότι η λειτουργική μονάδα πηγής Objective-C++ έχει #εισαγάγει το αρχείο C++ Matrix.h:

- (void)addTwoMatrices
{
    Matrix matrixOne( 3 ); // μήτρα 3x3
    Matrix matrixTwo( 3 ); // αλλο
    int rowIndex = 0;
    int colIndex = 0;
    για (rowIndex=0; rowIndex<3; ++rowIndex)
    {
        για (colIndex=0; colIndex<3; ++colIndex)
        {
            // ορίστε τα στοιχεία του πίνακα στις τιμές τους
            matrixOne.setElement( rowIndex, colIndex, XXX );
            // ορίστε τα στοιχεία του πίνακα δύο σε κάποιες άλλες τιμές
            matrixTwo.setElement( rowIndex, colIndex, YYY );
        }
    }
    Matrix matrixSum = matrixOne + matrixTwo;

Με το Objective-C++, οι εφαρμογές σας μπορούν να επωφεληθούν από όλες τις διαθέσιμες βιβλιοθήκες τρίτων κατασκευαστών που είναι γραμμένες για C++.


Για ηλικιωμένους: Πώς να εισαγάγετε το Clip Art σε μια διαφάνεια του PowerPoint

Για ηλικιωμένους: Πώς να εισαγάγετε το Clip Art σε μια διαφάνεια του PowerPoint

Το clip art είναι προσχεδιασμένο γενικό έργο τέχνης και η Microsoft παρέχει δωρεάν πολλά αρχεία clip art με τα προϊόντα του Office. Μπορείτε να εισαγάγετε clip art στη διάταξη διαφανειών του PowerPoint. Ο ευκολότερος τρόπος εισαγωγής clip art είναι χρησιμοποιώντας ένα από τα σύμβολα κράτησης θέσης σε μια διάταξη διαφάνειας: Εμφάνιση μιας διαφάνειας που περιέχει ένα Clip Art […]

Για ηλικιωμένους: Τρόπος συμπλήρωσης χρώματος στο Microsoft Excel

Για ηλικιωμένους: Τρόπος συμπλήρωσης χρώματος στο Microsoft Excel

Το χρώμα πλήρωσης — που ονομάζεται επίσης σκίαση — είναι το χρώμα ή το μοτίβο που γεμίζει το φόντο ενός ή περισσότερων κελιών φύλλου εργασίας του Excel. Η εφαρμογή σκίασης μπορεί να βοηθήσει τα μάτια του αναγνώστη να ακολουθήσουν πληροφορίες σε μια σελίδα και μπορεί να προσθέσει χρώμα και οπτικό ενδιαφέρον σε ένα φύλλο εργασίας. Σε ορισμένους τύπους υπολογιστικών φύλλων, όπως ένα μητρώο βιβλιαρίου επιταγών, […]

Προσθήκη νέων επαφών στην πράξη! 2005

Προσθήκη νέων επαφών στην πράξη! 2005

Στο πιο απλό επίπεδο, ο κύριος σκοπός του ACT! είναι να χρησιμεύσει ως χώρος αποθήκευσης όλων των επαφών με τις οποίες αλληλεπιδράτε σε καθημερινή βάση. Μπορείτε να προσθέσετε και να επεξεργαστείτε όλες τις επαφές σας από το παράθυρο "Λεπτομέρειες επαφών" επειδή περιέχει όλες τις πληροφορίες που σχετίζονται με μια συγκεκριμένη εγγραφή και […]

Φύλλο εξαπάτησης Discord For LuckyTemplates

Φύλλο εξαπάτησης Discord For LuckyTemplates

Χρησιμοποιήστε αυτό το φύλλο εξαπάτησης για να μεταβείτε απευθείας στη χρήση του Discord. Ανακαλύψτε χρήσιμα ρομπότ Discord, εφαρμογές που μπορείτε να ενσωματώσετε και συμβουλές για συνεντεύξεις από επισκέπτες.

OpenOffice.org For LuckyTemplates Cheat Sheet

OpenOffice.org For LuckyTemplates Cheat Sheet

Η σουίτα γραφείου OpenOffice.org διαθέτει πολλά εργαλεία για να διευκολύνει την επαγγελματική ζωή. Όταν εργάζεστε στο OpenOffice.org, γνωρίστε τη γραμμή εργαλείων λειτουργιών (η οποία φαίνεται σχεδόν ίδια σε όλες τις εφαρμογές) και τα κύρια κουμπιά της γραμμής εργαλείων για βοήθεια με βασικές εντολές για τις περισσότερες εργασίες.

Μηχανή βόμβας του Άλαν Τούρινγκ

Μηχανή βόμβας του Άλαν Τούρινγκ

Η μηχανή Bombe του Alan Turing δεν ήταν καμία μορφή τεχνητής νοημοσύνης (AI). Στην πραγματικότητα, δεν είναι καν πραγματικός υπολογιστής. Έσπασε τα κρυπτογραφικά μηνύματα Enigma και αυτό ήταν. Ωστόσο, παρείχε τροφή για σκέψη στον Τούρινγκ, το οποίο τελικά οδήγησε σε μια εργασία με τίτλο «Υπολογιστικές Μηχανές και Νοημοσύνη»; που δημοσίευσε τη δεκαετία του 1950 που περιγράφει […]

Τυπικές ελλείψεις υλικού για την τεχνητή νοημοσύνη

Τυπικές ελλείψεις υλικού για την τεχνητή νοημοσύνη

Η δυνατότητα δημιουργίας ενός αρθρωτού συστήματος έχει σημαντικά οφέλη, ειδικά στις επιχειρήσεις. Η δυνατότητα αφαίρεσης και αντικατάστασης μεμονωμένων εξαρτημάτων διατηρεί το κόστος σε χαμηλά επίπεδα, ενώ επιτρέπει σταδιακές βελτιώσεις τόσο στην ταχύτητα όσο και στην απόδοση. Ωστόσο, όπως συμβαίνει με τα περισσότερα πράγματα, δεν υπάρχει δωρεάν μεσημεριανό γεύμα. Η αρθρωτή δομή που παρέχεται από την αρχιτεκτονική Von Neumann συνοδεύεται από κάποια […]

10 Dos και Dont κατά τη χρήση του QuarkXPress

10 Dos και Dont κατά τη χρήση του QuarkXPress

Αν έπρεπε να επιλέξετε δέκα πράγματα που μπορείτε να ξεχάσετε εύκολα, αλλά εξαιρετικά χρήσιμα για το QuarkXPress, αυτά στην παρακάτω λίστα, αγαπητέ αναγνώστη, θα ήταν αυτά. Namaste. Μιλήστε με τον εμπορικό σας εκτυπωτή Όλα τα έργα εκτύπωσης ξεκινούν και τελειώνουν με τον εκτυπωτή. Αυτό συμβαίνει επειδή μόνο οι εκτυπωτές γνωρίζουν τους περιορισμούς τους και τους χιλιάδες τρόπους με τους οποίους μπορεί να γίνει ένα έργο […]

Η προέλευση του Bitcoin

Η προέλευση του Bitcoin

Η πιο σημαντική πτυχή του bitcoin μπορεί να είναι η ιδέα πίσω από αυτό. Το Bitcoin δημιουργήθηκε από τον προγραμματιστή Satoshi Nakamoto. Αντί να προσπαθεί να σχεδιάσει μια εντελώς νέα μέθοδο πληρωμής για να ανατρέψει τον τρόπο με τον οποίο πληρώνουμε όλοι για πράγματα στο διαδίκτυο, ο Satoshi είδε ορισμένα προβλήματα με τα υπάρχοντα συστήματα πληρωμών και θέλησε να τα αντιμετωπίσει. Η εννοια του […]

Πώς να προστατεύσετε το απόρρητό σας όταν χρησιμοποιείτε Bitcoin

Πώς να προστατεύσετε το απόρρητό σας όταν χρησιμοποιείτε Bitcoin

Ένα ορισμένο επίπεδο ανωνυμίας συνδέεται με τη χρήση του bitcoin και του ψηφιακού νομίσματος γενικά. Το αν μπορείτε να το χαρακτηρίσετε ως "αρκετά ανώνυμο" είναι προσωπική άποψη. Υπάρχουν τρόποι να προστατεύσετε το απόρρητό σας όταν χρησιμοποιείτε το bitcoin για να μετακινήσετε χρήματα, αλλά αυτοί απαιτούν κάποια προσπάθεια και προγραμματισμό: Μπορείτε να δημιουργήσετε μια νέα διεύθυνση για […]