Recenzia Snagit 2018 Čo je nové od verzie 13
TechSmith Snagit je náš obľúbený softvér na úpravu snímok obrazovky a obrázkov. Pozrite si nové funkcie v Snagit 2018!
Vývoj aplikací pro Macintosh vyžaduje kreativitu, dovednosti programování Objective-C, určitou trpělivost a dobrou pomoc s vytrvalostí při implementaci, vylepšování a poskytování vaší aplikace pro Macintosh v dobrém provozním stavu vašim uživatelům. Na své cestě do tohoto cíle narazíte na několik výzev, které prověří vaše schopnosti programování a řešení problémů. Musíte se vypořádat (mimo jiné) s používáním delegátů k implementaci zpětných volání aplikací; používání non-Objective-C frameworků od Apple; a začlenění kódu C++ do vašich aplikací.
Vývoj aplikací pro Macintosh využívá zpětná volání, aby umožnil systému Mac OS X spouštět kód ve vaší aplikaci pro konkrétní operace. Pokud vytváříte standardní aplikaci na bázi okna nebo dokumentu pro Macintosh, úplně první kód, který OS X spustí, je v jedné z následujících metod zpětného volání, které musíte pro svou aplikaci vytvořit, v závislosti na návrhu aplikace:
Aplikace založené na okně: (void)applicationDidFinishSpuštění:(NSNotification*)aNotification
Aplikace založené na dokumentech: (void)windowControllerDidLoadNib:(NSWindowController*)windowController
Zpětné volání je jednoduše metoda, kterou OS nakonec provede, když se pokouší dodat nebo načíst informace z vaší aplikace. Kód vaší aplikace spustí metodu pro třídu kakaa, kde vaše aplikace bude mít příležitost poskytnout název metody jedné z vašich tříd, která má být volána na objektu třídy, kterou bude vaše aplikace muset poskytnout.
Delegát je objekt pomocníka, který třída Cocoa používá k rozšíření funkčnosti třídy tím, že umožňuje implementovat kód, který třída Cocoa bude spouštět za určitých okolností. Třída Cocoa kontroluje svůj objekt delegáta (pokud byl přiřazen), zda delegát poskytuje implementaci konkrétní metody. Pokud má delegát tuto metodu, třída Cocoa tuto metodu provede; pokud delegát neimplementuje tuto konkrétní metodu, třída Cocoa buď použije vlastní výchozí metodu, nebo zaprotokoluje chybu. Většina delegátů musí začlenit konkrétní protokol, který určuje, jaké metody mohou implementovat; delegáti vašeho kódu musí používat metody implementace ze specifického protokolu, který delegát očekává.
Zde jsou některé z objektů Cocoa, které mohou používat delegáty ke spuštění vašeho kódu:
NSTableView. NSTableView přijímá delegáta, který se řídí protokolem NSTableViewDelegate. To zahrnuje 20 až 30 metod, které může objekt delegáta vaší aplikace implementovat, aby podpořily potřebu vaší aplikace vědět, co NSTableView dělá. Existují metody, které budou volány ve vaší aplikaci, když potřebuje znát akci a reagovat na ni, například když uživatel provede výběr v tabulce nebo když se změní velikost sloupce.
Aplikace NSA. Můžete přiřadit NSApplicationDelegate ke zpracování některých metod, které instance NSApplication (vaše aplikace) obdrží. Tyto metody lze volat těsně před nebo těsně poté, co vaše aplikace spustí jinou metodu, aby mohla být vaše aplikace připravena.
NSWindow. NSWindowDelegate přiřazené k jednomu z oken vaší aplikace umožní vaší aplikaci reagovat na změny velikosti, přesunutí nebo jiné události uživatele.
NSMenu. Implementujete NSMenuDelegate pro podporu událostí, ke kterým dochází, když uživatel interaguje s nabídkami ve vaší aplikaci.
Apple poskytuje mnoho frameworků pro vývoj aplikací pro Macintosh (knihoven kódů), které může vaše aplikace volat k provádění tisíců operací v OS X. Mnoho z těchto frameworků, jako je sada PDF, se skládá z tříd Objective-C, ze kterých může vaše aplikace vytvářet a používat objekty ve svých aplikacích. Některé z těchto rámců jsou však pouze knihovny funkcí, které může vaše aplikace provádět.
Rámec CFNetwork je například sada funkcí, které může vaše aplikace používat k provádění vyladěných síťových připojení. Třída NSURL poskytuje dobrou sadu základních síťových operací, které jsou skvělé pro získávání dat pomocí adresy URL. Pokud vaše aplikace vyžaduje větší kontrolu nad síťovou komunikací, kterou spouští, budete muset použít rámec CFNetwork a jeho funkce. Následující kód můžete použít k přípravě požadavku HTTP pro přenos na konkrétní URL:
CFStringRef httpBody = CFSTR( "); CFStringRef headerFieldName = CFSTR( "Cookie" ); // přidat konkrétní cookie k požadavku HTTP CFStringRef headerFieldValue = CFSTR( "loginID=moje_uživatelské_jméno; heslo=moje_heslo;" ); CFStringRef url = CFSTR( "www.diabeticpad.com" ); CFURLRef urlRef = CFURLCreateWithStrign( kCFAllocatorDefault, url, NULL); CFStringRef requestMethod = CFSTR( "GET" ); CFHTTPMessageRef request = CFHTTPMessageCreateRequest( kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1 ); CFHTTPMessageSetBody( požadavek, httpBody ); // přidejte sušenku CFHTTPMessageSetHeaderFieldValue( požadavek, headerFieldName, headerFieldValue); CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage( požadavek );
Jakmile váš kód bude mít serializovaný požadavek, může vaše aplikace otevřít stream pro zápis, aby doručila požadavek na místo určení.
Všechny frameworky Apple založené na C poskytují sadu funkcí pro provádění tohoto typu programování na nižší úrovni. Váš kód bude složitější, ale Apple neposkytuje třídy Objective-C pro všechny své rámce. Pokud skutečně potřebujete funkce dostupné v jednom z těchto rámců, je to jediný způsob, jak dosáhnout cílů své aplikace. Následující rámce neposkytují třídy Objective-C:
Audio Toolbox
CFNnetwork
Jádro MIDI
Základní text
Adresářová služba (například LDAP a Open Directory)
Bezpečnostní
Pokud chcete vytvářet aplikace, které dokážou plně využít funkcí OS X, musíte být připraveni podporovat použití knihoven kódů, které nejsou Objective-C.
Objective-C poskytuje objektově orientované funkce pro vývoj aplikací pro Macintosh, jako je dědičnost a polymorfismus. Jazyk je založen na programovacím jazyce C; proto můžete využít své znalosti programování v C k kódování v rámci Objective-C. Objective-C++ je přemosťovací mechanismus, který umožňuje zdrojovým modulům Objective-C pracovat s třídami Objective-C++, které lze kompilovat a propojovat s knihovnami kódů C++.
Následující jednoduchý příklad čtvercové matice ukazuje obsah hlavičkového souboru C++ pro třídu Matrix. Třída Matrix je dodávána se standardním konstruktorem a destruktorem pro třídu C++ a metody jsou takové, jaké byste očekávali u objektu se základní čtvercovou maticí:
třídy Matrix { veřejnost: Matrix( int inSize ); virtuální ~Matrix(); int getSize( void ); int getDeterminant( void ); void setElement( int inRow, int inCol, int inValue ); int getElement( int inRow, int inCol ); Maticový operátor+( const Matrix& inAddend ); soukromé: int m_velikost; int[][] m_elements; };
Chcete-li používat Objective-C++, vaše moduly třídy Objective-C++ musí používat příponu souboru .mm. To říká kompilátoru Xcode, že třída má být zkompilována pomocí Objective-C++, což vaší třídě umožní používat klíčová slova jazyka C++. Pomocí Objective-C++ by vaše aplikace mohla vytvořit objekt Matrix pro provádění základních operací, jako je přidání dvou objektů Matrix dohromady. To předpokládá, že zdrojový modul Objective-C++ #importoval soubor C++ Matrix.h:
- (void)addTwoMatrices { Maticová maticeJedna( 3 ); // matice 3x3 Maticová maticeDva( 3 ); // další int rowIndex = 0; int colIndex = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // nastavení prvků matice na jejich hodnoty matrixOne.setElement( rowIndex, colIndex, XXX ); // nastaví prvky matice dva na nějaké jiné hodnoty matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Maticová maticeSoučet = maticeJedna + maticeDva;
S Objective-C++ mohou vaše aplikace využívat všechny dostupné knihovny třetích stran napsané pro C++.
TechSmith Snagit je náš obľúbený softvér na úpravu snímok obrazovky a obrázkov. Pozrite si nové funkcie v Snagit 2018!
Potrebujete vytvoriť diagramy alebo vývojové diagramy a nechcete inštalovať ďalší softvér? Tu je zoznam online nástrojov na vytváranie diagramov.
Mať dom plný bezdrôtovo pripojených zariadení a streamovacích služieb, ako je Spotify, je skvelé, kým veci nefungujú a nenájdete zaujímavé riešenia.
NVMe M.2 SSD je najnovšia technológia počítačových pevných diskov. Čo to je a aká je rýchlosť v porovnaní so staršími pevnými diskami a SSD (Solid State Drive)?
Sonos je správne fungujúce audio riešenie na streamovanie od 400 USD za dva reproduktory. Ale pri správnom nastavení môže byť AirPlay zadarmo. Pozrime sa na podrobnosti.
Zálohovanie a synchronizácia Google je nová aplikácia, ktorá sa synchronizuje s aplikáciami Fotky a Disk. Čítajte ďalej a zistite, ako si stojí v porovnaní s OneDrive, Dropbox, Backblaze a Crashplan.
MyIPTV je služba na strihanie káblov, ktorá využíva aplikáciu SOPlayer pre viacero platforiem a poskytuje televíziu, filmy a iné formy médií za platené
Spoločnosť Logitech nedávno vydala svoju klávesnicu Illuminated Living-Room Keyboard K830, ktorá je určená ako spoločník domácej zábavy. Tu je naša recenzia jednotky.
Tu je pohľad na aktualizáciu, ktorá bola nedávno vydaná pre CloudHQ a ako funguje. Čítajte ďalej a dozviete sa viac.
OnePlus 6T je prvotriedny kvalitný telefón s Androidom, ktorý sa predáva so zľavou v porovnaní s Apple iPhone, Google Pixel 3 alebo Samsung Galaxy S9.