iOS¤ò¼ç¤È¤·¤¿³«È¯È÷˺Ͽ



¤Ï¤¸¤á¤Ë

¤Þ¤º¤Ï¡¢¤è¤¯¤¢¤ëHelloWorld¤òɽ¼¨¤¹¤ë¥¢¥×¥ê¤òºî¤ê¤Þ¤¹¡£
°ø¤Ë¡¢¡Ö»ä¥×¥í¥°¥é¥à½é¤á¤Æ¤Ê¤ó¤Ç¤¹¡£¡×¤È¤¤¤¦¿Í¤Ï¡¢Objective-C¤Ç¤Ï¤¸¤á¤ë¥×¥í¥°¥é¥àÆþÌç?¤ò»²¹Í¤Ë¤·¤Æ¤Í¡£

À®²Ìʪ

¥Ü¥¿¥ó¤ò²¡¤·¤¿¤é¡¢HelloWold¤È¤¤¤¦Ê¸»úÎó¤òɽ¼¨¤·¤Þ¤¹¡£
¤¢¤ê¤­¤¿¤ê¤Ç¤¹¤Í¡£

Á°Äó¾ò·ï

  • Xcode4.2¤ò¥¤¥ó¥¹¥È¡¼¥ë

Agenda

  1. ¥×¥í¥¸¥§¥¯¥È¤Î¿·µ¬ºîÀ®
  2. Xcode4.2¤Î³Æ²èÌ̤ÎÀâÌÀ
  3. ¥³¥ó¥È¥í¡¼¥ë¤òÇÛÃÖ¤·¤Æ¤ß¤ë
  4. ¥í¥¸¥Ã¥¯¤ò½ñ¤¤¤Æ¤ß¤ë
  5. ¥­¡¼¥Ü¡¼¥É¤ò±£¤»¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤ë¡Ê¥Ç¥ê¥²¡¼¥È¡Ë

HelloWolrd¤ÎºîÀ®

¥×¥í¥¸¥§¥¯¥È¤Î¿·µ¬ºîÀ®

  1. Xcode¤òµ¯Æ°¤·¤Þ¤¹¡£
  2. File->New->New Project¤òÁªÂò¤·¡¢¡ÖChoose a template for your new project.¡×¥À¥¤¥¢¥í¥°¤òɽ¼¨¤·¤Þ¤¹¡£
  3. Single View Application¤òÁªÂò¤·¤Þ¤¹
Single View Application¤³¤Î¥Æ¥ó¥×¥ì¡¼¥È¤Ï¡¢Ã±°ì¤Î¥Ó¥å¡¼¤ò»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Æ¥ó¥×¥ì¡¼¥È¤òÄ󶡤·¤Þ¤¹¡£¤³¤Î¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤ÏViewController¤ª¤è¤ÓView¤¬´Þ¤Þ¤ì¤ëStoryboards¤â¤·¤¯¤Ïxlib¥Õ¥¡¥¤¥ë¤¬ÍÑ°Õ¤µ¤ì¤Þ¤¹¡£
  1. ¡ÖNext¡×¤ò²¡¤·¤Þ¤¹¡£
  2. ³Æ¹àÌܤòÆþÎϤ·¤í¤È¸À¤ï¤ì¤ë¤Î¤Ç¼¡¤Î¤È¤ª¤ê¤ËÆþÎϤ·¤Þ¤¹¡£
¹àÌÜ̾ÆþÎÏÃÍÀâÌÀ
Product NameHelloWorld¥×¥í¥À¥¯¥È¤Î̾Á°¤Ç¤¹¤Í
Company Identifieredu.self²ñ¼Ò¼±Ê̾ðÊ󡣤ʤ±¤ì¤Ð¤³¤ì¤Ç
Class PrefixHelloWorld¥×¥í¥À¥¯¥È̾¤ÈƱ¤¸¤Ë¤·¤Æ¤ª¤­¤Þ¤¹¡£¤³¤³¤ËÀßÄꤷ¤¿ÃͤÏXXXAppDeletege¤È¤«¤Î̾Á°¤Ë»È¤ï¤ì¤Þ¤¹
Use Stroybaord¥Á¥§¥Ã¥¯¤¢¤êXcode4.2¤«¤é¤Î¿·µ¡Ç½¤Ç¤¹¤Í¡£¤Þ¤º¤Ï¤Ä¤«¤Ã¤Æ¤ß¤Þ¤·¤ç¤¦
Use Automatic Reference Counting¥Á¥§¥Ã¥¯¤¢¤êARC¤Ç¤¹¤Í¡£¤³¤ì¤â¿·µ¡Ç½¡£»È¤¤¤Þ¤·¤ç¤¦
Include Unit Test¥Á¥§¥Ã¥¯¤Ê¤·¥æ¥Ë¥Ã¥È¥Æ¥¹¥È¤ÎÄɲÃ̵ͭ¡£¤è¤¯¤Ð¤é¤º¤Ë¤¤¤­¤Þ¤·¤ç¤¦

¤È¤ê¤¢¤¨¤º¡¢¥×¥í¥¸¥§¥¯¥È¤Ï¤³¤ì¤Çºî¤ê½ª¤ï¤ê¤Þ¤·¤¿¡£
º¸¾å¤Î¡ÖRun¥Ü¥¿¥ó¡ÊºÆÀ¸¥Þ¡¼¥¯¤ß¤¿¤¤¤Ê¤Î¡Ë¡×¤ò²¡¤·¤Æ¼Â¹Ô¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¥·¥å¥ß¥ì¡¼¥¿¡¼¤¬µ¯Æ°¤·¤Æ¡¢¿¿¤ÃÇò¤¤²èÌ̤¬¤Ç¤Æ¤¯¤ì¤ÐOK¤Ç¤¹¡£

Xcode4.2¤Î³Æ²èÌ̤ÎÀâÌÀ

¤¬¤ó¤Ð¤Ã¤Æ¡¢SS¤È¤í¤¦¤È¤·¤¿¤ó¤Ç¤¹¤±¤ÉÌÌÅݤ¯¤µ¤¤¤Î¤Ç¤¢¤­¤é¤á¤Þ¤·¤¿
ºÇÄã¸Â¤Î¤È¤³¤í¤À¤±ÀâÌÀ¤·¤Þ¤¹¡£

Project navigator

²èÌ̺¸¤Ë¤¢¤ëWindows¤ÎExplorer¤ß¤¿¤¤¤Ê¤â¤Î¤Ç¤¹¡£
¤³¤³¤Ë¥×¥í¥¸¥§¥¯¥È¤ËɬÍפʳƼï¥Õ¥©¥ë¥À¤ä¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹¡£
Supporting Files/main.m
¥á¥¤¥ó¥Õ¥¡¥¤¥ë¤Ç¤¹¤Í¡£ARC¤Ë¤¹¤ë¤È¤³¤³¤Ë¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤¬µ­ºÜ¤µ¤ì¤Þ¤¹¡£
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([HelloWorldAppDelegate class]));
    }
Supporting Files/HelloWorld-Info.plist
ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤¹¤Í¡£
HelloWorld¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¡¢Storyboards¤ò»ÈÍѤ¹¤ë¤È¤·¤¿¤Î¤Ç¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢
¤³¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥óµ¯Æ°»þ¤ËÆɤ߹þ¤Þ¤ì¤ëStoryboards¥Õ¥¡¥¤¥ë¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
Main storyboard file base name   String MainStoryboard
HelloWorld/MainStoryboard.stroyboard
¤³¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îstoryboard¥Õ¥¡¥¤¥ë¤Ç¤¹¤Í¡£
¥¢¥×¥ê¤¬µ¯Æ°¤µ¤ì¤ë¤È¡¢MainStoryboard.storyboard¥Õ¥¡¥¤¥ë¤¬¥í¡¼¥É¤µ¤ì¡¢StoyBoard¤Ë¤¢¤ë¥Ó¥å¡¼¥³¥ó¥È¥í¡¼¥é¡¼¤¬¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¤Þ¤¹¡£
HelloWorld/HelloWolrdAppDelegate.h HelloWorldAppDelegate.m
main.m¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢UIApplication¤ÎDelegate¤òôÅö¤¹¤ë¥¯¥é¥¹¤Ç¤¹¤Í¡£
stroyboard¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢¼¡£²ÅÀ¤ËÃíÌܲսê¤Ç¤·¤ç¤¦¤«¡£
  • ViewController¤ò¥×¥í¥Ñ¥Æ¥£¤Ë»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
#import <UIKit/UIKit.h>

@interface HelloWorldAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end
  • didFinishLaunchingWithOptions¤Î¥³¡¼¥Ç¥£¥ó¥°
¤¤¤Þ¤Þ¤Ç¤Ï¡¢didFinishLaunchingWithOptions¤Ëwindow¤òalloc¤·¤Æ¡¢ViewCotroller¤òalloc¤·¤Æ¡¢¥×¥í¥Ñ¥Æ¥£¤ËÆͤùþ¤ó¤Ç¡¢window¤ÎrootViewController¥×¥í¥Ñ¥Æ¥£¤ËÆͤùþ¤ó¤Ç¤Ê¤É¤Ê¤É¥¢¥×¥ê¤ÎWindowsÀ¸À®¤ÈViewÀ¸À®¤ò½ñ¤¤¤Æ¤¤¤Þ¤·¤¿¤¬¡¢º£²ó¤Ï¤³¤ì¤é¤Î»Å»ö¤òstorybord¥Õ¥¡¥¤¥ë¤¬Ã´Åö¤¹¤ë¤è¤¦¤Ç¤¹¡£
¤Ê¤Î¤Ç¡¢didFinishLaunchingWithOptions¤Ë¤ÏÆä˲¿¤Î½èÍý¤ò½ñ¤«¤ì¤Æ¤¤¤Þ¤»¤ó¡£
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    return YES;
}
¥¢¥×¥ê¤Îµ¯Æ°»þ¤ÎÆâÉô½èÍý¤â¤«¤ï¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¡¢API¤Ë¼¡¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¤¢¤ê¤Þ¤·¤¿¡£
During setup, the application object performs the following tasks:

1.Loads the main storyboard file. 
¡¡main storybord¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£

2.Gets the window object from the app delegate (or creates a new instance of UIWindow and associates it with the app delegate).
delegate¤«¤éwindow object¤òºî¤ë¤¼¡£

3.Instantiates the storyboard¡Çs initial view controller and assigns it as the window object¡Çs root view controller.
¥¹¥È¡¼¥ê¡¼¥Ü¡¼¥É¤ÎºÇ½é¤Î¥Ó¥å¡¼¥³¥ó¥È¥í¡¼¥é¤ò¥¤¥ó¥¹¥¿¥ó¥¹²½¤·¡¢window¥ª¥Ö¥¸¥§¥¯¥È¤ÎroorViewController¤È¤·¤Æ³ä¤êÅö¤Æ¤ë¡£


¤À¤½¤¦¤Ç¤¹¡£

¥³¥ó¥È¥í¡¼¥ë¤òÇÛÃÖ¤·¤Æ¤ß¤ë

¤½¤ì¤¸¤ã¡¢¤È¤ê¤¢¤¨¤º¥³¥ó¥È¥í¡¼¥ë¤òÇÛÃÖ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¤«¡£
ºî¶È¤ò»Ï¤á¤ëÁ°¤Ë¡¢MainStoryboard.storyboard¥Õ¥¡¥¤¥ë¤ò³«¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£´Êñ¤ÊÀâÌÀ¤Ç¤â¤·¤Á¤ã¤¤¤Þ¤·¤ç¤¦¤«¡£

Storyboard¤Ç½ÅÍפʥ­¡¼¥ï¡¼¥É¤Ï¼¡¤Î£²¤Ä¤À¤½¤¦¤Ç¤¹¡£
  • ¥·¡¼¥ó(sene)
  • ¥»¥°¥¨(segue)
̾Á°ÀâÌÀ
¥·¡¼¥ó¥·¡¼¥ó¤Ï¡¢¥³¥ó¥Æ¥ó¥Ä¤Î¤¢¤ëÎΰè¤ò´ÉÍý¤¹¤ë¥Ó¥å¡¼¥³¥ó¥È¥í¡¼¥é¤òɽ¤¹
¥»¥°¥¨¥»¥°¥¨¤ÏView´Ö¤ÎÀÚ¤êÂؤï¤ê¸ú²Ì¤òɽ¤¹

º£²ó¤Ï¡¢SingleViewTemplate¤òÁªÂò¤·¤¿¤Î¤Ç¡¢¥·¡¼¥ó¤Ï£±¸Ä¡¢segue¤Ï£°¸Ä¤Ç¤¹¤Í¡£¡Ê¸Ä¤È¿ô¤¨¤ë¤«¤Ï¤·¤é¤Ê¤¤¡£±©¤¸¤ã¤Ê¤¤¤­¤¬¤¹¤ë¡Ë
º£²ó¤Ç¤¤¤¦¤È¡¢¥·¡¼¥ó¤Ïº¸¤«¤é¤Î¤Ó¤Æ¤¤¤ëÌð°õ¤Ë¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ëView¤Î²èÌÌ¥¨¥Ç¥£¥¿¤È²¼¤ÎDocÉôʬ¤ò¼¨¤¹¤é¤·¤¤¡£¡Ê¤é¤·¤¤¤Ç¤¹¤«¤é¤Í¡Ë

¤µ¤Æ¡¢Á°ÃÖ¤­¤¬Ä¹¤¯¤Ê¤ê¤Þ¤·¤¿¤¬¡¢ÇÛÃÖ¤ò¤·¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£´ðËܤÏxlib¤È¤«¤ï¤ê¤Þ¤»¤ó¤Î¤Ç¾ÜºÙ¤Ï¾Ê¤­¤Þ¤¹¡£
ËܲÈApple¥µ¥¤¥È¤Ë¤¤¤±¤Ð¡¢xlib¥Ð¡¼¥¸¥ç¥ó¤Ê¤éÆüËܸì¤Î¥Æ¥­¥¹¥È¤¬¤¢¤ê¤Þ¤¹¤·¤Í¡£
¼¡¤è¤¦¤ËÇÛÃÖ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¤È¤ê¤¢¤¨¤º¡¢¼Â¹Ô¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¤Þ¤À¡¢¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤âÈ¿±þ¤Ï¤Ê¤¤¡ÊÀĤ¯¤Ï¤Ê¤ê¤Þ¤¹¤±¤É¡Ë¤·¡¢¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤Ëʸ»ú¤òÆþÎϤ·¤è¤¦¤â¤Î¤Ê¤é¡¢¥­¡¼¥Ü¡¼¥É¤¬±£¤ì¤Æ¤¯¤ì¤Þ¤»¤ó¡£
¥Ü¥¿¥ó¤ËAction¤ò·ë¤Ó¤Ä¤±¤ë
i.Assistant Editor¤Î¥Ü¥¿¥ó¡Ê±¦¾å¤Îij¥Í¥¯¥¿¥¤¥¢¥¤¥³¥ó¡Ë¤ò²¡¤·¤Æ¡¢¥¨¥Ç¥£¥¿¥â¡¼¥É¤òÊѹ¹¤·¤Þ¤¹¡£
±¦Â¦¤Î¥³¡¼¥ÉÉôʬ¤Ë¤Ï¡¢HelloWorldViewController.h¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¤Í¡£
ii.¥Ü¥¿¥ó¤Î¾å¤ÇCtrl¥­¡¼¤ò²¡¤·¤Ê¤¬¤é¡¢º¸Â¦¤Î¥³¡¼¥ÉÉôʬ¤Ë¥É¥é¥Ã¥°¡õ¥É¥í¥Ã¥×¤·¤Þ¤¹¡£

iii.¥Ý¥Ã¥×¥¢¥Ã¥×¤¬¤Ç¤Æ¤¯¤ë¤Î¤Ç¹àÌܤòÆþÎϤ·¤Þ¤¹¡£

¤¹¤ë¤È¡¢HelloWorldViewController.h¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
#import <UIKit/UIKit.h>

@interface HelloWorldViewController : UIViewController
- (IBAction)createMessage:(id)sender;
@end
¤Þ¤¿¡¢HelloWorldViewController.m¤Ë¤Ï¼¡¤Î¥³¡¼¥É¤¬Äɲ䵤ì¤Þ¤¹¡£
- (IBAction)createMessage:(id)sender {
}
textFiled,Label¤ÎOutlet¤òºîÀ®¤·¤Þ¤¹¡£
textfield¤Î¾å¤ÇCtrl¥­¡¼²¡¤·¤¿¤Þ¤Þ±¦¤Î¥³¡¼¥É¥¨¥Ç¥£¥¿¤ËD&D¤¹¤ë¤È¡¢¥Ý¥Ã¥×¥¢¥Ã¥×¹àÌܤ¬É½¼¨¤µ¤ì¤ë¤Î¤Ç¼¡¤Î¤è¤¦¤Ë¹àÌܤËÆþÎϤ·¤Þ¤¹¡£
¹àÌÜ̾ÃÍÀâÌÀ
NametxtNameOutlet¤Î̾Á°¤Ë¤Ê¤ê¤Þ¤¹¡£¤ï¤«¤ê¤ä¤¹¤¤¤â¤Î¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
StorageWeaktextField¤Ï¡¢ViewController¤ÎView¥ª¥Ö¥¸¥§¥¯¥È¤ÎSubView¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢View¤Ë½êÍ­¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢Weak¤¬Å¬ÀڤǤ¹¡£
label¤â»÷¤¿¤è¤¦¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£Name¤Ï¡ÖlblMessage¡×¤È¤·¤Æ¤ª¤­¤Þ¤¹¡£
¤³¤³¤Ç¤ÎÃíÌܥݥ¤¥ó¥È¤Ï¡¢¼¡¤Î£²ÅÀ¤Ç¤¹¡£
  • HelloWorldViewController.h¤Ë¼¡¤Î¥×¥í¥Ñ¥Æ¥£¤¬¤Ç¤­¤Æ¤¤¤ë
#import <UIKit/UIKit.h>

@interface HelloWorldViewController : UIViewController
@property (weak, nonatomic) IBOutlet UITextField *txtName;
@property (weak, nonatomic) IBOutlet UILabel *lblMessage;
- (IBAction)createMessage:(id)sender;

@end
  • HelloWorldViewController.m¥Õ¥¡¥¤¥ë¤ÎviewDidUnload¥á¥½¥Ã¥É¤Ç³Æ¥×¥í¥Ñ¥Æ¥£¤Ënil¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤ë¤³¤È
- (void)viewDidUnload
{
    [self setTxtName:nil];
    [self setLblMessage:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}
¥¿¥°

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu

¤ªÃΤ餻

¥«¥Æ¥´¥ê

¥Ï¥ó¥º¥ª¥ó

ÅÐεÌç

iOS5¤Ç¤ÎÊѹ¹ÅÀ

¥Í¥Ã¥È¥ï¡¼¥¯ÄÌ¿®

Web¥¢¥×¥ê¤È¤ÎÏ¢·È

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹