ã¯ããã«
ãã®ããããœãŒã·ã£ã«ãããã¯ãŒã¯ãšã¯äœãããŸãããããã²ãŒã ïŒããã³éã²ãŒã ïŒã¢ããªã±ãŒã·ã§ã³ã§ã©ã®ããã«äœ¿çšããããã«ã€ããŠã¯èª¬æããŸããã FacebookãTwiterã§ããŸããŸãªçš®é¡ã®ãã®ãå ¬éããããã«ã²ãŒã ãæãããšããã¿ã¹ã¯ãèšå®ããããç§ã¯èšãã ãã§ãã
Unity3dãšã³ãžã³ã䜿çšããŠäœæããã²ãŒã ã ãœãŒã·ã£ã«ãããã¯ãŒã¯ãæäœããããã®çµã¿èŸŒã¿æ©èœã¯ãããŸããã ããããc / c ++ / Objective c / ...ã§ãã©ã°ã€ã³ãæžãããšã¯å¯èœã§ã ãã©ãããã©ãŒã ã®æ¯åœèªã§ã ããã¯ç§ãããªããã°ãªããªãã£ãããšã§ããã ç§ãã¡ã¯ãããããipadãšiOSãã©ãããã©ãŒã ãšObjective-Cèšèªçšã®ã¢ããªã±ãŒã·ã§ã³ãéçºããŠããŸãã
以äžã«ãç§ãäœãã©ã®ããã«ãããã説æããŸããã³ãŒããå ±æããå°æ¬ãããhabrasocietyã«ããã€ã質åããŸãã
ãã©ã°ã€ã³ããŸã æåŸãŸã§ãããã°ãããŠããªãããšãããã«æ確ã«ããŸãïŒ ããããå ±æãããã®ããŸã ãããŸãã
èªè»¢è»ãäœæããããšã¯å¿ é ã§ããïŒ
ãã®ãããªãã©ã°ã€ã³ãäœæããã«ã¯ãããã€ãã®ãªãã·ã§ã³ããããŸãã
- æåã®ããããŠããããæãè«ççãªãã®ã¯è³Œå ¥ããããšã§ãïŒ ã¯ãããã§ã«æ¢è£œã®ãªãã·ã§ã³ããããèå³ã®ãã人ã¯æã人æ°ã®ãããªã³ã¯ãå ±æã§ããŸãã ãã®ãããªãœãªã¥ãŒã·ã§ã³ã®å¯äžã®ãã€ãã¹ç¹ã¯ãAppleãŸãã¯ãœãŒã·ã£ã«éçºè ã§ãã ãããã¯ãŒã¯ã¯API /ãã¬ãŒã ã¯ãŒã¯ãç°¡åã«å€æŽã§ããŸããããã©ã°ã€ã³éçºè ãããã«ããã«å¯Ÿå¿ããã®ã¯äºå®ã§ã¯ãããŸããã
- iOSçšFacebook SDKã䜿çšããŠæçš¿ããŸã ã åå¿ã¶ãã«ãŒããŒã°ãšåœŒã®ä»²éã¯ãGUIãªã©ã§ãã€ãã£ãã¢ããªçšã®SDKãæžãã ããªãããŸããã£ãããã§ãã
- ãããã
WebView
ããã³Client-side/Server-side
ãªãã·ã§ã³ã䜿çšã§ããŸãã ããããã¢ããªã±ãŒã·ã§ã³ãHTML5
ã§ãªãéããããã¯ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã«ã¯ããŸã䟿å©ã§ã¯ãªããšæãHTML5
ãã ããå¥ã®ãªãã·ã§ã³ããããŸãããæ³åã®ãšãããããã«ã€ããŠèª¬æããŸãã iOS 6ã®Appleã¯ãFacebookãšã®ç·å¯ãªçµ±åãè¿œå ããŸããã ããã€ã¹ã®èšå®ã§ããœãŒã·ã£ã«ãããŠãŒã¶ãŒå/ãã¹ã¯ãŒããå ¥åã§ããã®ãšåãååã®ã¢ã€ãã ã衚瀺ãããŸããã ãããã¯ãŒã¯ã Twitterã«ãåãæ©äŒããããŸãã èšå®ã®Twitterã以åã®ããŒãžã§ã³ã®iOSã§è¡šç€ºãããå Žæã
ãããã®ã¢ã«ãŠã³ããæäœããããã«ãAppleã¯ããªã䟿å©ãªãã¬ãŒã ã¯ãŒã¯
Accounts
ã
Social
ã
Twitter
æäŸããŠããŸãã æåã®ãã®-
Accounts
-ããã€ã¹èšå®ã§ãŠãŒã¶ãŒãèšå®ããã¢ã«ãŠã³ããžã®ã¢ã¯ã»ã¹ãæäŸããŸã/äž»ãªã¢ã€ãã¢ã¯ããã§ã-ãœãŒã·ã£ã«ãããã¯ãŒã¯ã®ã¢ã«ãŠã³ããããŠãŒã¶ãŒå/ãã¹ã¯ãŒããäžåºŠæå®ããŸãã ãããã¯ãŒã¯ã«æ¥ç¶ããŠããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããŸããæ¯ååå ¥åããå¿ èŠã¯ãããŸããã 2çªç®-
Social
-ãœãŒã·ã£ã«ãµãŒãã¹ã®ãªã¯ãšã¹ããäœæããã®ã«åœ¹ç«ã¡ãŸãã ïŒãããã¯ãŒã¯ïŒèŠä»¶ã«å¿ãããããã¯ãŒã¯ã ããŠã3çªç®
Twitter
ã¯ãã®èšäºã®ãããã¯ã§ã¯ãããŸããã ããã§ã¯ãFacebookã§ã®äœæ¥ã®ã¿ãæ€èšããŸãã
段èœã®èŠåºãã§å°ãããã質åã«çããŠãç§ã¯èšãã§ãããïŒç§ã¯èªè»¢è»ãçºæãã䟡å€ã¯ãªããè³Œå ¥ããæ¹ãç°¡åã ã£ããšå人çã«æããŸãããç§ã¯å€ãã®èªç±æéãããããã©ã°ã€ã³ãèªåã§æ§ç¯ããŠã¿ãããšã«ããŸããã ããã«ãè¿œå ã®çµéšã¯èª°ãæ°ã«ããŸããã§ããã
Unity3dçšã®ãã©ã°ã€ã³ãäœæããããã®äžè¬åå
ãã¹ãŠãåçŽã§ã-ãã©ã°ã€ã³ã
Assets/Plugins/iOS
ãšã次äžä»£ã®xcode-projectã§ãšã³ãžã³ã«ãã£ãŠèªåçã«éžæãããŸãã ãã©ã°ã€ã³ã¯æ¬¡ã®ãšããã§ãã
- ã³ã³ãã€ã«æžã¿ã©ã€ãã©ãª-* .a
- ãœãŒã¹ã³ãŒã-* .mã* .mmã* .cppã* .cã ãã¡ããã* .hããããŒãã¡ã€ã«ãå¿ããªãã§ãã ããïŒãã ããããã§ã¯å®éã«ã¯å¿ èŠãããŸããïŒ
C ++ãŸãã¯Objective-Cã³ãŒãã䜿çšããå Žåããšã¯ã¹ããŒããããé¢æ°ã¯Cã¹ã¿ã€ã«ã§å®£èšããŠãé¢æ°ã®åŒã³åºãæ¹æ³ã®éãã«ããåé¡ãåé¿ããå¿ èŠããããŸãã
ãããŠãã1ã€ã®æ³šæ-ãã©ã°ã€ã³ããã®é¢æ°ã¯ç¹å®ã®ããã€ã¹ã§ã®ã¿åŒã³åºãããšãã§ãããããã·ãã¥ã¬ãŒã¿ã§ãããžã§ã¯ããéå§ããéã®åé¡ãåé¿ããããã«ãïŒãã©ã°ã€ã³ãããããžã§ã¯ãã«ïŒã€ã³ããŒãããããã¹ãŠã®é¢æ°ã¯ããããžã§ã¯ããå®è¡ãããŠãããã©ââãããã©ãŒã ããã§ãã¯ããCïŒã³ãŒãã§ããã«ã©ããããããšããå§ãããŸãã
ããã ãã§ã
Facebookã¢ããªã®ã»ããã¢ãã
äœæ¥ãéå§ããåã«ãFacebookã§ã¢ããªã±ãŒã·ã§ã³ãæ£ããæ§æããå¿ èŠããããŸãã ãããè¡ãããªãå Žåãå€ãã®ãç¥ç§çãªããã°ããã£ããã§ããŸãããããŸããã°ã§ã¯ãããŸããã
ãã¥ãŒãã³ã°ã®æšå¥šäºé ã¯æ¬¡ã®ãšããã§ãã
- ã¢ããªã±ãŒã·ã§ã³ã®ã¿ã€ã
Native iOS App
ãæå®ããŸãã ããã¯2ã€ã®ããŒãžã§è¡ãããŸããèšå®-åºæ¬ãã¢ããªã±ãŒã·ã§ã³ãFacebookã«çµã¿èŸŒãæ¹æ³ãå°ããå Žæãããã³èšå®-詳现ã ããã§ã¯ã[Authentification
ã»ã¯ã·ã§ã³ã®[App type
-> [Native/Desktop
ãã©ã¡ãŒã¿ãŒã«æ³šç®ããŸãã -
Bundle ID
å¿ ãæå®ããŠãã ããã åœç¶ããããžã§ã¯ãèšå®ã§æå®ããããã®ãšäžèŽããå¿ èŠããããŸãã - èšå®-詳现ïŒ[
App Secret in Client
ã®App Secret in Client
]ãã©ã¡ãŒã¿ãŒã[ãªã]ã«èšå®ããŸã - èšå®-åºæ¬ïŒ
Facebook Login
-æå¹
ãã©ã°ã€ã³æäœã¢ã«ãŽãªãºã
å®éãã¢ã«ãŽãªãºã ã¯éåžžã«åçŽã§ã-ã·ã¹ãã ããã¢ã«ãŠã³ããååŸãããœãŒã·ã£ã«ãããã¯ãŒã¯ã§ããŒã¿ãå ¬éããæš©éãèŠæ±ããŸãã ãããã¯ãŒã¯ãå ¬éã ãããŠãåé ç®ã«ã€ããŠããã«è©³ãã説æããŸãã
äžã§æžããããã«ãiOS SDKã«ã¯ãèšå®ã§æå®ããããŠãŒã¶ãŒã¢ã«ãŠã³ããžã®ã¢ã¯ã»ã¹ãæäŸãã
Accounts
ãã¬ãŒã ã¯ãŒã¯ããããŸãã å®éã圌ãã ãã§ãªããä»ã®äººãç§ãã¡ã«èå³ãæã£ãŠããŸããã
æåã«ãã¢ã«ãŠã³ãã®ãªããžããªã§ãã
ACAccountStore
ã¯ã©ã¹ã®ãªããžã§ã¯ããäœæããå¿ èŠããããŸãã 次ã«ãã¯ã©ã¹
ACAccountType
ãªããžã§ã¯ããååŸããŸãããã®ãªããžã§ã¯ãã«ã¯ãé¢å¿ã®ããã¿ã€ãã®ãã¹ãŠã®ã¢ã«ãŠã³ãã«é¢ããæ å ±ãå«ãŸããŸãã
次ã®3çš®é¡ã®ã¢ã«ãŠã³ãããµããŒããããŠããŸãã
-
ACAccountTypeIdentifierFacebook
-Facebookã¢ã«ãŠã³ã -
ACAccountTypeIdentifierTwitter
-Twitterã¢ã«ãŠã³ã -
ACAccountTypeIdentifierSinaWeibo
ããã¯ãç§ãã¡ã«ãšã£ãŠé¢çœããªããäžåœã®ãœãŒã·ã£ã«ã§ãã ããã
次ã«ãé¢å¿ã®ããæš©éã§ãã®ã¿ã€ãã®ã¢ã«ãŠã³ããžã®ã¢ã¯ã»ã¹ããªã¯ãšã¹ãããå¿ èŠããããŸãã æš©éã¯åãããã¯ãŒã¯ã«åºæã§ãããæååã®é åãšããŠæå®ãããŸãã
ãã®åŸãã¢ã«ãŠã³ããå®å šã«åãåãïŒãã¡ããããã®ãããªã¢ã«ãŠã³ããååšãããŠãŒã¶ãŒããã¹ãŠã®ãŠã£ãã·ã¥ãªã¹ããèš±å¯ããŠããå ŽåïŒãå¿ èŠãªãã®ãäœã§ãäœæã§ããŸãã
ãã¹ãŠãã·ã³ãã«ã§åå§çã§ããããã«æãããŸãã ãããããããFacebookã®å Žåã§ã¯ãããŸããã
ã¢ã«ãŽãªãºã ã¯å°ãè€éã«ãªããŸãã iOS SDKãFacebookãšäžç·ã«éä¿¡ãããªãããã«ããã«ã¯ããŸãäœããèš±å¯ããããã«èŠåãããã³ã«ãŠãŒã¶ãŒã衚瀺ããå¿ èŠããªãããã«ãç¹å¥ãªèš±å¯èŠæ±ã¢ã«ãŽãªãºã ãå®è¡ããå¿ èŠããããŸãã
- æåã«ãå®å šã«åå§çãªå人æ å ±ãžã®ã¢ã¯ã»ã¹ãèŠæ±ããå¿ èŠããããŸãã ããšãã°ãã¡ãŒã«ã§éä¿¡ããŸãã ã¡ãªã¿ã«ããŠãŒã¶ãŒã®å人æ å ±ãšå人ã®ãªã¹ããžã®ã¢ã¯ã»ã¹ãèŠæ±ããŠããããšãããããŸããã
- 次ã«ïŒåã®æ®µèœã®èš±å¯ãååŸããå ŽåïŒãããŒãã®èªã¿åãæš©ãèŠæ±ããå¿ èŠããããŸã-read_streamãããªãã¯ã¯ãèªã¿åãæš©ã®åã«ïŒããã«èªã¿åãæš©ãèŠæ±ããã«ïŒå ¬éã®æš©å©ãèŠæ±ã§ããªãããšã§ãã ãŸããåäžã®èŠæ±ã§ã¢ã¯ã»ã¹æš©ãšèªã¿åãæš©ãèŠæ±ããããšã¯ã§ããŸããã
- ããŠãä»ããªãã¯ç§ãã¡ãèå³ãæã£ãŠããæš©å©ãèŠæ±ããããšãã§ããŸã-publish_stream
èãããããã¹ãŠã®æš©å©/èš±å¯ã®è©³çŽ°ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
ãã®ã¢ã«ãŽãªãºã ãå®è¡ãããªãå Žåããã®ãããªãšã©ãŒããã£ããã§ããŸãã
- FacebookãµãŒããŒã¯ãã®ã¢ã¯ã»ã¹ãªã¯ãšã¹ããå®è¡ã§ããŸããã§ããïŒremote_app_idã¯ä¿åãããIDãšäžèŽããŸããã
- FacebookãµãŒããŒã¯ããã®ã¢ã¯ã»ã¹èŠæ±ãæºããããšãã§ããŸããã§ãããã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ã§ããŸããã§ããã
- ä»ã®ããããã®äºº
ãã®ãããã¯ã«é¢ããStackoverflowã¯ãèå³ã®ãã人ãªã誰ã§ãèªãããšãã§ããŸãã ããã§ã人ã ã¯å€ãã®ãã®ãããªãšã©ãŒãã¬ã€ã¢ãŠãããŸãïŒ
ã ãããç§ã¯ãã®ã³ãŒãã®ãããªãã®ãæã«å ¥ããŸããïŒã¡ã¢ãªãã埩å ããä»ã§ã¯ãã§ã«å€æŽãããŠããŸãããæå ã«å±¥æŽãæã€ãªããžããªã¯ãããŸããïŒïŒ
ACAccountStore *store = [[ACAccountStore alloc] init]; ACAccountType *fb_account_type = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; NSDictionary *dict = @{ACFacebookAppIdKey : fb_appid, ACFacebookPermissionsKey : @[@"email"], ACFacebookAudienceKey : ACFacebookAudienceEveryone}; [store requestAccessToAccountsWithType:fb_account_type options:dict completion:^(BOOL granted, NSError *error) { if (granted && error == nil) { ACAccountType *fb_account_type = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; NSDictionary *dict = @{ACFacebookAppIdKey : fb_appid, ACFacebookPermissionsKey : @[@"read_permission"], ACFacebookAudienceKey : ACFacebookAudienceEveryone}; [store requestAccessToAccountsWithType:fb_account_type options:dict completion:^(BOOL granted, NSError *error) { if (granted && error == nil) { ACAccountType *fb_account_type = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; NSDictionary *dict = @{ACFacebookAppIdKey : fb_appid, ACFacebookPermissionsKey : @[@"public_permission"], ACFacebookAudienceKey : ACFacebookAudienceEveryone}; [store requestAccessToAccountsWithType:fb_account_type options:dict completion:^(BOOL granted, NSError *error) { if (granted && error == nil) { // } }]; } }]; } }];
ç§ã¯åæããŸããããã¯äžæ°å³ã«èŠããŸãïŒ
dict
ãš
fb_account_type
絶ããåäœæãããŠããããšã«
fb_account_type
ã
-
dict
ã ããèŠããšãããã§å€æŽãããã®ã¯ACFacebookPermissionsKeyã ãã§ãã çè«çã«ã¯ã[dict setObject: forKey:]
䜿çšã§ããŸãã ããããã³ãŒããèšè¿°ãã段éã§ãããXcodeã¯ãã®ã¡ãœãããæ©èœããªãå¯èœæ§ããããšããèŠåãåºãå§ããŸããã ãã®çµæããã¹ãŠãå®çŸããããã€ã¹äžã§èµ·åããŸãã...ãŸã èœã¡ãŸããããã®æ¹æ³ã§ããã ç§ã¯æãæ¹ããã¯ã©ãã·ã¥ãã³ããèªã¿ãŸããã§ãããããã®æ¹æ³ã§åé¡ãåé¿ããå°æ¥ã®ããã«TODOãèšå®ããŸããã -
fb_account_type
ã ããã§ã¯ãã¹ãŠãå°ãè€éã§ãã ãªããžã§ã¯ããåäœæããã«ã2çªç®ã®[store requestAccessToAccountsWithType:options:completion]
ã¢ããªã±ãŒã·ã§ã³ãå®å®ããŠã¯ã©ãã·ã¥ããŸããã å¥ã®TODOã
ãã®ã³ãŒããå°ãåçŽåããŸããã
void _fb_request_access(NSArray *permissions, FBAccessGrantedHandler handler) { ACAccountType *fb_account_type = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; NSDictionary *dict = @{ACFacebookAppIdKey : fb_appid, ACFacebookPermissionsKey : permissions, ACFacebookAudienceKey : ACFacebookAudienceEveryone}; [store requestAccessToAccountsWithType:fb_account_type options:dict completion:^(BOOL granted, NSError *error) { if (granted && error == nil) { handler(); } }]; } _fb_request_access(@[@"email"], ^() { _fb_request_access(@[@"read_stream"], ^() { _fb_request_access(@[@"publish_stream"], ^() { _fb_post_impl(post); }); }); });
æ®å¿µãªããããã®ã³ãŒãããã¹ãããæéããããŸããã§ãã-ipadã¯åãå»ãããŸããïŒãããŠã6çªç®ã®ããŒãžã§ã³ã§ã¯ãããã¯ç§ãã¡ã ãã®ãã®ã§ãïŒã ãããããããžã§ã¯ãã¯ãšã©ãŒãªãã§çµã¿ç«ãŠãããŸããã
å£ã«æçš¿ãã
ããŠãå®éã«ãå£ã«æçš¿ããããšã«ã€ããŠã ãããè¡ãå¥ã®é¢æ°
_fb_post_impl
ãŸãã
void _fb_post_impl(NSString *text) { ACAccountType *fb_account_type = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; NSArray *accounts = [store accountsWithAccountType:fb_account_type]; fb_account = [accounts objectAtIndex:0]; SLRequest *fb_request = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST URL:[NSURL URLWithString:@"https://graph.facebook.com/me/feed"] parameters:[NSDictionary dictionaryWithObject:text forKey:@"message"]]; [fb_request setAccount:fb_account]; [fb_request performRequestWithHandler:^(NSData* responseData, NSHTTPURLResponse* urlResponse, NSError* error) { NSLog([[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding]); }]; }
ã¢ã«ãŽãªãºã ã¯ç°¡åã§ãïŒ
-
ACAccountType
ã å¿ èŠãªèš±å¯ã¯ãã¹ãŠä»¥åã«ååŸãããŠããããšãç解ãããŸãã - 次ã«ããã®ã¿ã€ããšå¿ èŠãªæš©éãæã€ãã¹ãŠã®ã¢ã«ãŠã³ããååŸããŸãã
- çµæã®é åãããæåã®èŠçŽ ãååŸããŸãã ãã®ãããã¯ã«é¢ããå ·äœçãªæ å ±ã¯èŠã€ãããŸããã§ããããèšå®ããã®ã¢ã«ãŠã³ãã®ããã§ãã
- ããŠãæçš¿ããŠãã ããã
ããã¹ãã®ã¿ãæçš¿ããããã«ãªããŸããã åç/ãªã³ã¯/ã¿ã€ãã«/ãªã©ãè¿œå ããããã« ãã©ã¡ãŒã¿èŸæžãè£è¶³ããå¿ èŠããããŸãã ããã§å¯èœãªãã£ãŒã«ãã®ãªã¹ããåç §ããŠãã ããã å£ã«æ²ç€ºããã ãã§ãªãã ãããèªãããšããå§ãããŸãã
Cã§ãã©ã°ã€ã³é¢æ°ãåŒã³åºãïŒ
å®éãããã§ã¯ãã¹ãŠãã·ã³ãã«ã§åå§çã§ãã
[DllImport ("__Internal")] private static extern void _fb_init(String appid); [DllImport ("__Internal")] private static extern void _fb_post(String text); public static void fb_init() { _fb_init(" application id"); } public static void fb_post(String text) { _fb_post(text); }
å°ããªã¡ã¢-CïŒã®
String
åã«ã¯ããã©ã°ã€ã³ã®
const char*
ã«å¯Ÿå¿ããŸãã ããšãã°ãæåã«
NSString
ã䜿çšããããšããŸããã
çµè«ã®ä»£ããã«
ãã®çµæãç§ã¯ãªããšãããã¹ãã ããå£ã«æçš¿ããããšãã§ããŸããã 確ãã«ãç§ãæžãããããã®å°ããªåŠšå®³ã®ããã«ãèšãç¥ããªãã»ã©ã®æéãè²»ãããŸãã-ããã€ã¹ã§ã®ã¿ãã©ã°ã€ã³ã䜿çšãããèš±å¯ãååŸããããã®ããªãããŒãªã¢ã«ãŽãªãºã ã
ã³ãŒãã¯bitbucket-bitbucket.org/mnazarov/fb_pluginã«ã¢ããããŒããããŸããã
ã¡ãªã¿ã«ãObjective-Cã«åããŠåºäŒã£ãã®ã§ãå€ãã蹎ãã®ã§ã¯ãªããç解ãããããé¡ãããŸãã ã³ãŒããæ¹åããããã®ãã³ããåãã§åãåããŸãã
ãŸãã誰ããèªåã®ããã€ã¹ãè©ŠããŠãã©ã®ããã«æ©èœãããã解é€ã§ãããã©ãããå¬ããã§ãã
誰ããéçºãæ¯æŽããããšã«æ±ºããããç§ã¯ãšãŠãããããã§ãïŒ
ããŠãããã€ã質åããããŸãïŒ
- èŸæžã§ééã£ãããšã
[dict:setObject:forKey]
ã¡ãœãããæ©èœããªãã£ãããšã Xcodeã¯ãã®ã¡ãœãããç¥ã£ãŠããã«ãããããããåãStackoverflowã§ã人ã ã¯ç§ã®ãšåãã±ãŒã¹ã§ããã䜿çšããŠããŸãã - 2çªç®ã®è³ªåã¯ãiPadã§ã®ãããã°ã«é¢ãããã®ã§ãããããã°æ¹æ³ããç¥ç§çãªããã°ã®ãã£ããæ¹æ³ã§ãã ç¹ã«ããã®ãã©ã°ã€ã³ããããã°ãããšããNSLogåŒã³åºãã§ã¢ããªã±ãŒã·ã§ã³ãåçŽã«ã¯ã©ãã·ã¥ããç¶æ³ã芳å¯ããŸããïŒ
ã¯ã©ãã·ã¥ãã³ããèªã¿åãããšããŸããããäœãããããŸããã§ããã
PSãã®èšäºã誰ãã®ç¥çµçŽ°èãæãããšãé¡ã£ãŠããŸãã