ãããããªããç¥ã£ãŠããå¯äžã®èšèªãJavaãŸãã¯CïŒã§ãããªããç§ã¯ããªããããã®ããã°ã©ããŒã ãšã¯æããªã-ããªãã¯ãããŸã§ãã£ã1çš®é¡ã®ããªãŒã§äœæ¥ããè¥ã倧工ã®ããã ãã
ãããããã
æ°ã¶æåãç§ã¯iPhoneçšã®ã¢ããªã±ãŒã·ã§ã³ã®éçºãå§ããŸããã .NETãã©ãããã©ãŒã ãšCïŒããCocoaãšObjective-Cãžã®åãæ¿ãã¯åéºãªãã§ã¯ãããŸããã§ããããéåžžã«è峿·±ãæçã§ããã ããã«ãåœç€Ÿã®ä»ã®éçºè
ãæ°ãããã©ãããã©ãŒã ãéçºããã®ãæäŒããªããã°ãªããŸããã ãã®ããããã®ç§»è¡ãããã¹ã ãŒãºã«ããããã®äžé£ã®å°å
¥ããŒããäœæããããšã«ããŸããã
ãã®èšäºã§ã¯ãCïŒéçºè
ã®èгç¹ããObjective-Cã«é¢ããäºå®ã®å°ããªã»ãããæäŸããŸãã
- Objective-Cã¯ããªããžã§ã¯ãæåèšèªã§ãããCèšèªã®ãæ£çŽãªãæ¡åŒµã§ãïŒCã§èšè¿°ãããããã°ã©ã ã¯ãObjective-Cã®ããã°ã©ã ã§ããããšãã°ãC ++ã®å Žåã¯å¿
ãããåœãŠã¯ãŸããŸããïŒã
èšèªã«ã€ããŠã®ååãªè©³çްã¯ã Objective-Cã®æè¿ã®èšäºã«ãŒãããæžãããŠããŸãã - ãªããžã§ã¯ããèšè¿°ããããã«2ã€ã®ãã¡ã€ã«ãäœæãããŸããæ¡åŒµåã.hã®ããããŒãã¡ã€ã«ãšæ¡åŒµåã.mã®å®è£
ãã¡ã€ã«ã§ãã
- Objective-Cã¯ã©ã¹ã¯ãªããžã§ã¯ãã§ãã倧ãŸãã«èšããšãObjective-Cã¯ã©ã¹ã¯ãéçã¡ãœããã®ã»ãããæã€ãã¡ã¯ããªã¡ãœãããã¿ãŒã³ã®å®è£
ãšããŠè¡šãããšãã§ããŸãã
- CïŒã®ãããªå€éç¶æ¿ã¯ãµããŒããããŠããŸããã
- NSObjectã¯ã.NETã®åºæ¬ã¯ã©ã¹System.Objectã®ãã¢ããã°ãã§ãã
- Objective-Cã§ã€ã³ã¿ãŒãã§ã€ã¹ãèšè¿°ãããšããã¯ã©ã¹CïŒãæå³ããŸãã
- ãããŠãCïŒã§ã€ã³ã¿ãŒãã§ã€ã¹ãšåŒã¶ãã®ãObjective-Cãããã³ã«ã§ã¯ãããã³ã«ãšåŒã³ãŸãã
- Objective-Cã«ã¯ãã¯ã©ã¹ã¡ãœããïŒ+ã§å®£èšãéå§ããïŒãšã€ã³ã¹ã¿ã³ã¹ã¡ãœããïŒå®£èšã¯-ã§å§ãŸãïŒã®2çš®é¡ã®ã¡ãœããããããŸãã çè§£ããŠããããã«ãã¯ã©ã¹ã¡ãœããã¯åãéçCïŒã¡ãœããã§ãã
- ãªããžã§ã¯ãã¡ãœãããåŒã³åºãå Žåã¯ããªããžã§ã¯ãã¡ãœããã«é¢ããã¡ãã»ãŒãžãéä¿¡ããŸãïŒObjective-Cã¯ã颿°æåã®CïŒãšã¯ç°ãªããã¡ãã»ãŒãžæåã®èšèªã§ãïŒã
- Objective-Cã§ã¯ããã¹ãŠã®ã¡ãœããããããªãã¯ã§ãïŒããæ£ç¢ºã«ã¯ãã¢ã¯ã»ã¹ã¬ãã«ã«ããã¡ãœããã®åé¢ã¯ãããŸããïŒã
- Objective-Cã§ã¯ããã¹ãŠã®ã¡ãœããã¯ä»®æ³ã§ãïŒã€ãŸããæŽŸçã¯ã©ã¹ã§ä»»æã®ã¡ãœããããªãŒããŒã©ã€ãã§ããŸãïŒã
- æ®å¿µãªãããObjective-Cã«ã¯ã¬ããŒãžã³ã¬ã¯ã¿ãŒããããŸããïŒiPhoneçšã®ããã°ã©ãã³ã°ã®å ŽåïŒã 代ããã«ããªã³ã¯ã«ãŠã³ãã¡ã«ããºã ã䜿çšãããŸãã
- 䜿çšããããããã£ãååŸããã«ã¯ãããããŒãã¡ã€ã«ã§@propertyããŒã¯ãŒãã䜿çšããŠããããã£ã宣èšããå®è£
ãã¡ã€ã«ã§@syntesizeã䜿çšããŠã²ãã¿ãŒãšã»ãã¿ãŒãçæããŸãã
- #importã䜿çšããŠããŸã
- selfã¯ãããžã®ãã€ã³ã¿ã§ã
- ã¹ãŒããŒã¯ããŒã¹ã§ã
- idã¯ãªããžã§ã¯ãã®ãããªãã®ã§ã
ã¡ãã»ãŒãžãéä¿¡ãã
äžè¬ã«ãObjective-Cã§ã¡ãã»ãŒãžãéä¿¡ããã¢ãããŒããšããã®çµæãã¡ãœããã®åœåæ¹æ³ã¯å
šäœçãªå²åŠã§ãã ããã«ã¯
ãObjective-Cã®ã¡ãœãããèŠã人ã
ãç®ã倱ã£ããšããæçš¿ããã§ã«ãããŸããã ãã®èšäºã¯ãããããæŒãæ»ãããšãã人ã
ã®ããã®ãã®ã§ãã ãããè¡ãæãç°¡åãªæ¹æ³ã¯ããªãã¿ã®ãããã®ãšã®é¡äŒŒæ§ã確èªããããšã§ãã
Objective-Cã§ã¡ãœããåŒã³åºããã©ã®ããã«èŠãããèŠãŠã¿ãŸãããã åäŸã§ã¯ãCïŒã®å®éã®ã¢ããã°ãäžããããŸãã
ãã©ã¡ãŒã¿ãªãã®ã¡ãœããïŒ
CïŒïŒ
someStringã ToLower ïŒ ïŒ ;
Objective-CïŒ
[ someString ToLower ] ;
1ã€ã®ãã©ã¡ãŒã¿ãŒïŒ
someStringã çãã ïŒ anotherString ïŒ ;
[ someString isEqualToString ïŒ anotherString ] ;
ããã€ãã®ãªãã·ã§ã³ïŒ
someStringã EndsWith ïŒ anotherStringã true ãsomeCulture ïŒ ;
[ someString isEndedWithString ïŒ anotherString withIgnoreCase ïŒ YES andCultureInfo ïŒ someCulture ] ;
æ·»ä»ã¡ãã»ãŒãžïŒ
someStringã ãµãã¹ããªã³ã° ïŒ 1 ïŒ ã EndsWith ïŒ anotherStringãTrim ïŒ ïŒ ã true ãCultureInfo.CurrentCulture ïŒ ;
[ [ someString getSubstringStartedAtIndex ïŒ 1 ] isEndedWith ïŒ [ anotherString Trim ] withIgnoreCase ïŒ YES andCultureInfo ïŒ [ CultureInfo getCurrentCulture ] ] ;
äžèšã®ããã«ãObjective-Cã«ã¯ã€ã³ã¹ã¿ã³ã¹ã¡ãœãããšã¯ã©ã¹ã¡ãœããã®2çš®é¡ã®ã¡ãœããããããŸãã CïŒãšObjective-Cã§ã©ã®ããã«å®£èšãããŠãããèŠãŠã¿ãŸãããã
ã€ã³ã¹ã¿ã³ã¹ã¡ãœããïŒ
public int sum ïŒ int firstNumberã int secondNumber ïŒ ;
- ïŒ int ïŒ sumOfFirstNumber ïŒ ïŒ int ïŒ firstNumberããã³SecondNumber ïŒ ïŒ int ïŒ secondNumber;
ã¯ã©ã¹ã¡ãœããïŒãŸãã¯CïŒã®éçã¡ãœããïŒïŒ
éç inté·ãïŒ æåå str ïŒ ;
+ ïŒ int ïŒé·ãïŒ ïŒ NSString * ïŒ str;
ãã¶ã€ããŒãšãã¹ãã©ã¯ã¿ã«ã€ããŠå°ã
CïŒãšåæ§ã«ãæ°ããããŒã¯ãŒãã䜿çšããŠãªããžã§ã¯ããäœæã§ããŸãã
[ someObject new ] ;
ãã®æ¹æ³ã¯ãæ¬¡ã®æäœã«äŒŒãŠããŸãã
[ [ someObject alloc ] init ] ;
allocã¯ãªããžã§ã¯ãã«ã¡ã¢ãªãå²ãåœãŠãinitã¯ããã€ãã®ããã©ã«ããã©ã¡ãŒã¿ã§ã¡ã¢ãªã®ãã®ã»ã¯ã·ã§ã³ãåæåããŸãã CïŒã§ã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒãåŒã³åºããšãã«ããããã®æäœã¯è«ççã«åé¢ãããŠããŸããã
2çªç®ã®ã¢ãããŒãã䜿çšããããšããå§ãããŸããããã¯ããªããžã§ã¯ããäœæããã¡ã«ããºã ãããæ£ç¢ºã«ç€ºãããã§ãïŒãããŠãäœãããŠããã®ããçè§£ããå¿
èŠããããŸããïŒïŒã
[ [ someObject alloc ] initWithTitle ïŒ @ "SomeTitle" ] ;
NSStringã¯ã©ã¹ã®ããã€ãã®ã³ã³ã¹ãã©ã¯ã¿ãŒã®å®£èšã®äŸã次ã«ç€ºããŸãã
- ïŒ id ïŒ init ;
æåãå«ãŸãªãåæåãããNSStringãªããžã§ã¯ããè¿ããŸãã
- ïŒ id ïŒ initWithString ïŒ ïŒ NSString * ïŒ aString ;
åæåãããNSStringãªããžã§ã¯ããè¿ããå¥ã®NSStringãªããžã§ã¯ãããæåãã³ããŒããŸãã
- ïŒ id ïŒ initWithCharacters ïŒ ïŒ const unichar * ïŒæåã®é·ãïŒ ïŒ NSUInteger ïŒé·ã;
æå®ãããæåé
åããæå®ãããæ°ã®æåãå«ãåæåãããNSStringãªããžã§ã¯ããè¿ããŸãã
initãObjective-Cã®ã³ã³ã¹ãã©ã¯ã¿ïŒãŸãã¯alloc + initã®æïŒã§ããå Žåãdeallocã¯ãã¹ãã©ã¯ã¿ïŒã¡ã¢ãªã®è§£æŸïŒã§ãã CïŒã®å Žåãšåæ§ã«ãèªåçã«åŒã³åºãããŸãã
ãããŠããªã³ã¯ã«ãŠã³ã¿ãŒã«ã€ããŠå°ã
CïŒããç§»è¡ããå ŽåãObjective-Cã§éçºãããšãã®ã¡ã¢ãªç®¡çã¯æãéèŠãªåé¡ã®1ã€ã§ãã ç§ãã¡ïŒ.NETéçºè
ïŒã¯ãã®æå³ã§çãããããŠããŸã-ã»ãšãã©ã®å Žåãã¬ããŒãžã³ã¬ã¯ã¿ãŒããã¹ãŠãè¡ã£ãŠããããšããäºå®ã«æ
£ããŠããŸãã ãã®ã¢ãããŒãã¯ããã§ã¯æ©èœããŸãããã¢ããªã±ãŒã·ã§ã³ã®ã¡ã¢ãªãæ
éã«æäœããªããšããå¥åŠãªããšã©ãŒã宿çã«çºçããŸãã
ãªã³ã¯ã«ãŠã³ã¿ãŒã¡ã«ããºã ã¯ããã¹ãŠã®ãªããžã§ã¯ãã«å¯ŸããŠåºæ¬çãªNSObjectãå®è£
ããŸãã èãæ¹ã¯æ¬¡ã®ãšããã§ããåãªããžã§ã¯ãã«ã¯åç
§ã«ãŠã³ã¿ãŒãå«ãŸããŠããããªã³ã¯ã®æ°ããŒãã«ãªããšãdeallocãåŒã³åºãããŸãã èªåã§deallocãåŒã³åºããªãã§ãã ããïŒ
ãªããžã§ã¯ãã®ã¡ã¢ãªãå²ãåœãŠãïŒalloc / newã¡ãœãããåŒã³åºãïŒãšãããªããžã§ã¯ãã®ã³ããŒãäœæãããšãïŒã³ããŒã¡ãã»ãŒãžïŒãä¿æã¡ãã»ãŒãžä»ãã®ãªããžã§ã¯ããéä¿¡ãããšããã«ãŠã³ã¿å€ã¯1ãã€å¢å ããŸãã ã«ãŠã³ã¿å€ã1æžããã«ã¯ããªããžã§ã¯ãã«ãªãªãŒã¹ã¡ãã»ãŒãžãéä¿¡ããå¿
èŠããããŸãã
éåžžããªããžã§ã¯ããæäœããã¹ããŒã ã¯æ¬¡ã®ãšããã§ãïŒäœæïŒåç
§ã«ãŠã³ã¿ãŒã1ã€å¢ãããŸãïŒãå¿
èŠãªã¢ã¯ã·ã§ã³ãå®è¡ïŒãã¹ãŠã®å¯Ÿè±¡ãªããžã§ã¯ããã¡ãã»ãŒãžãä¿æããŠããè§£æŸïŒããè§£æŸã¡ãã»ãŒãžãéä¿¡ïŒã«ãŠã³ã¿ãŒã1ã€æžããïŒããã¹ãã©ã¯ã¿ãåŒã³åºãããŸãã
ãªãªãŒã¹ã¡ãã»ãŒãžã§ã¯ããªããžã§ã¯ãã®ãã¹ãã©ã¯ã¿ãååŒã³åºããããšããã°ã©ã ãåé€ããããããæ³šæããŠäžèŠãªåŒã³åºããé¿ããå¿
èŠããããŸãã
ãŸãããªããžã§ã¯ãã«ãªãªãŒã¹ã¡ãã»ãŒãžãéä¿¡ããå¿
èŠãããããšãèŠããŠããå¿
èŠæ§ãåãé€ãããšãå¯èœã§ãïŒããã¯ããªããžã§ã¯ããã¡ãœããã«ãã£ãŠè¿ãããå°æ¥ã®éåœãããããªãããšãåå ã§ããå ŽåããããŸãïŒã ããã¯ãautoReleaseã¡ãã»ãŒãžãšAutoreleasePoolãªããžã§ã¯ãã䜿çšããŠå®è¡ã§ããŸãã
[ [ [ someObject alloc ] init ] autorelease ] ;
ãªããžã§ã¯ãã¯AutoreleasePoolã«æžã蟌ãŸããŸãã ã€ãŸãããªãªãŒã¹ã¡ãã»ãŒãžã¯ãåŸã§ããªããžã§ã¯ãã«éä¿¡ããããããŸã§ãªããžã§ã¯ãã¯ã¡ã¢ãªå
ã«ãããŸãã ããã°ããããŠãããã¯ããªãªãŒã¹ãŸãã¯ãã¬ã€ã³ã¡ãã»ãŒãžãAutoreleasePoolãªããžã§ã¯ãã«éä¿¡ããããšãã«çºçããŸãã
ãã®ãããã¯ã®ç¶ããšããŠãShivani Khannaã«ããæè¿ã®ã¬ããŒã
ãObjective C for CïŒDevelopersããåç
§ããããšããå§ãããŸãã
远å /ä¿®æ£ãæè¿ããŸãã
èšäºãèªãã§ãããŠããããšãïŒ