忍者ブログ
Welcome to my site. Please sitting on the couch, relax and see the web site.

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Hikakin × Aerosmith × Nonstop - Walk This Way

まさかの、「エアロスミス」とボイパの「ヒカキン」が競演!
まじヤバ。





公開日: 2013/06/16
Pleaae Thumbs Up, Share, SUBSCRIBE!xD
http://www.youtube.com/hikakin
http://www.facebook.com/HIKAKIN
http://twitter.com/Hikakin
----------------------------------------­-----------------------------------
Join my fanchart here: http://bit.ly/HikakinFanChart
Subscribe to Starcount's channel here: http://www.youtube.com/user/starcount
Join their fan app here: http://www.starcount.com/theapp

Subscribe to Aerosmith's channel here: http://www.youtube.com/user/Aerosmith...
Join Aerosmith's fanchart here: http://bit.ly/AerosmithFanChart

Subscribe to Marquese Scott's channel here: http://www.youtube.com/user/WHZGUD2
Join Marquese Scott's fanchart here: http://bit.ly/MarqueseScottFanChart
-------
カテゴリ
エンターテイメント
ライセンス
標準の YouTube ライセンス

拍手[0回]

PR

【進撃の巨人】進撃のリヴァイ兵長【手書きトレス】


これは上手い!!

ので、うp主に感謝。








Thanks!

MrKyochan224

公開日: 2013/07/24
from nico video sm21431487
カテゴリ
映画とアニメ
ライセンス
標準の YouTube ライセンス



拍手[0回]

【PATLITE】パトカーのサイレンをヴァイオリンで演奏しますた【SAP500】

てっぺい先生がすごすぎる件。
ヴァイオリンってこんな音するの?

公開日: 2013/10/01
てっぺい先生です (`・ω・´)ゞ G線で手動→A線で4秒周期自動→A線D線で2台分
【Twitter】http://twitter.com/teppei_sensei
【Website】http://www9.plala.or.jp/teppeikun/
カテゴリ
音楽
ライセンス
標準の YouTube ライセンス


拍手[0回]

Git Hub って何?

Free codeをゲットするには
世界的なクリエイターは必ずここを使ってます。



https://github.com/

拍手[0回]

Share Kit


You need use SNS services, have to get some code,

Git Hub

Please GET! it now.

拍手[0回]

RootViewController.m

//
// RootViewController.m
// PlainNote
//
// Copyright (c) 23 __MyCompanyName__. All rights reserved.
//


#import "RootViewController.h"
#import "DetailNoteViewControler.h"



@implementation RootViewController
@synthesize Notes, addButtonItem, listTableView, helpButton, syncButton;


- (void)viewDidLoad {
[super viewDidLoad];

self.navigationItem.rightBarButtonItem = self.addButtonItem;


[self createEditableCopyOfDatabaseIfNeeded];

//theme info
// listTableView.backgroundColor = [UIColor blackColor];

// Register for application exiting information so we can save data
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminate:) name:UIApplicationWillTerminateNotification object:nil];

NSString *documentDirectory = [self applicationDocumentsDirectory];
NSString *path = [documentDirectory stringByAppendingPathComponent:@"NotesList.plist"];

//NSString *path = [[NSBundle mainBundle] pathForResource:@"NotesList" ofType:@"plist"];
NSMutableArray *tmpArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
self.Notes = tmpArray;
[tmpArray release];


// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
self.navigationItem.leftBarButtonItem = self.editButtonItem;
}

- (IBAction) addButtonPressed: (id) sender {
// NSLog(@"Add button pressed!");

DetailNoteViewControler *noteDetailViewControler = [[DetailNoteViewControler alloc] initWithNibName:@"DetailNoteViewControler" bundle:nil];

// this adds a navication bar to the noteDetailViewController
UINavigationController *addNavCon = [[UINavigationController alloc] initWithRootViewController:noteDetailViewControler];
noteDetailViewControler.noteArray = self.Notes;

[self presentModalViewController:addNavCon animated:YES];

[addNavCon release];
[noteDetailViewControler release];


}

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];

// important to reload data when view is redrawn
[self.tableView reloadData];
}

/*
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
}
*/
/*
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
}
*/
/*
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
}
*/

/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations.
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/

- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
// Release anything that can be recreated in viewDidLoad or on demand.
// e.g. self.myOutlet = nil;
}


#pragma mark Table view methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}


// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.Notes count];
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
// cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}

//theme info
//cell.contentView.clipsToBounds = YES;
// [cell.contentView setBackgroundColor:[UIColor darkGrayColor]];
// [self.tableView reloadData];
// Configure the cell.
//cell.textLabel.backgroundColor = [UIColor darkGrayColor];
cell.textLabel.text = [[self.Notes objectAtIndex:indexPath.row ]objectForKey:@"Text"];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat: @"yyyy-MM-dd HH:mm:ss zzz"];

NSDate *dateTmp;
dateTmp = [[self.Notes objectAtIndex:indexPath.row ]objectForKey:@"CDate"];
cell.detailTextLabel.text = [dateFormat stringFromDate: dateTmp];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;


[dateFormat release];
// [dateTmp release];



//cell.text.label = cell.text.label + [[self.Notes objectAtIndex:indexPath.row]objectForKey:@"CreationDate"];

return cell;
}




// Override to support row selection in the table view.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

// Navigation logic may go here -- for example, create and push another view controller.

DetailNoteViewControler *noteDetailViewControler = [[DetailNoteViewControler alloc] initWithNibName:@"DetailNoteViewControler" bundle:nil];
//[self.navigationController pushViewController:noteDetailViewControler animated:YES];

// this adds a navication bar to the noteDetailViewController
UINavigationController *addNavCon = [[UINavigationController alloc] initWithRootViewController:noteDetailViewControler];
noteDetailViewControler.Notedict = [self.Notes objectAtIndex:indexPath.row];
noteDetailViewControler.noteArray = self.Notes;

[self presentModalViewController:addNavCon animated:YES];

[addNavCon release];
[noteDetailViewControler release];

}



/*
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the specified item to be editable.
return YES;
}
*/



// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source.
// Delete the row from the data source.
[self.Notes removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
}
}



/*
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
}
*/


/*
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the item to be re-orderable.
return YES;
}
*/

- (void)createEditableCopyOfDatabaseIfNeeded {
// First, test for existence - we don't want to wipe out a user's DB
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *documentDirectory = [self applicationDocumentsDirectory];
NSString *writableDBPath = [documentDirectory stringByAppendingPathComponent:@"NotesList.plist"];

BOOL dbexits = [fileManager fileExistsAtPath:writableDBPath];
if (!dbexits) {
// The writable database does not exist, so copy the default to the appropriate location.
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"NotesList.plist"];

NSError *error;
BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!success) {
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
}
}

- (NSString *)applicationDocumentsDirectory {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

-(void) applicationWillTerminate: (NSNotification *)notification {

// NSLog(@"got app will terminate");
NSString *documentDirectory = [self applicationDocumentsDirectory];
NSString *path = [documentDirectory stringByAppendingPathComponent:@"NotesList.plist"];

[self.Notes writeToFile:path atomically:YES];
}

- (void)dealloc {
[Notes release];
[addButtonItem release];
[super dealloc];
}


@end

拍手[0回]

RootViewController.h

//
// RootViewController.h
// PlainNote
//
//

#import <UIKit/UIKit.h>

@interface RootViewController : UITableViewController {
NSMutableArray* Notes;
IBOutlet UIBarButtonItem *addButtonItem;
IBOutlet UITableView *listTableView;
}
@property (nonatomic, retain) NSMutableArray* Notes;
@property (nonatomic, retain) UIBarButtonItem* addButtonItem;
@property (nonatomic, retain) UIBarButtonItem* helpButton;
@property (nonatomic, retain) UIBarButtonItem* syncButton;
@property (nonatomic, retain) UITableView* listTableView;


- (IBAction) addButtonPressed: (id) sender;

- (NSString *)applicationDocumentsDirectory;
- (void)createEditableCopyOfDatabaseIfNeeded;
- (void) applicationWillTerminate: (NSNotification *)notification;
@end

拍手[0回]

PlainNoteAppDelegate.m

//
// PlainNoteAppDelegate.m
// PlainNote
//
//


#import "PlainNoteAppDelegate.h"
#import "RootViewController.h"


@implementation PlainNoteAppDelegate

@synthesize window;
@synthesize navigationController;


#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after app launch

[window addSubview:[navigationController view]];
[window makeKeyAndVisible];
return YES;
}


- (void)applicationWillTerminate:(UIApplication *)application {
// Save data if appropriate
}


#pragma mark -
#pragma mark Memory management

- (void)dealloc {
[navigationController release];
[window release];
[super dealloc];
}


@end

拍手[0回]

NoteAppDelegate.h

//
// NoteAppDelegate.h
// Note
//
//


#import <UIKit/UIKit.h>

@interface PlainNoteAppDelegate : NSObject {

UIWindow *window;
UINavigationController *navigationController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

@end

拍手[0回]

DetailNoteViewControler.m

//
// DetailNoteViewControler.m
//
//
// Created by Hisato on 12/28/11.
//

#import "DetailNoteViewControler.h"
#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>
#import <QuartzCore/QuartzCore.h>
#import "SHK.h"

#define MAIL_SUBJECT @"iNotes"
#define MAIL_BODY textView.text
#define MAIL_TO [NSArray arrayWithObject:@""]
#define MAIL_CC [NSArray arrayWithObject:@""]
#define MAIL_BCC [NSArray arrayWithObjects:@"", @"", nil]

@implementation DetailNoteViewControler
@synthesize NoteDetail, Notedict, noteArray, mailButton, scrollView, toolBar;

/*
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
*/


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];


//背景追加の記述
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg-paper.png"]];

// イベントストアを初期化
self->eventStore = [[EKEventStore alloc] init];


NoteDetail.delegate = self;
didEdit = NO;
keyboardVisible = NO;
scrollView.contentSize = self.view.frame.size;

self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancel:)] autorelease];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(save:)] autorelease];


[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (keyboardDidShow:)
name: UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (keyboardDidHide:)
name: UIKeyboardDidHideNotification object:nil];

if ([MFMailComposeViewController canSendMail])
mailButton.enabled = YES;


}


//シェアアクションについて
- (IBAction)shareButton:(id)sender;{
// UItextViewに表示されているtext指定して、SHKItemを生成する
SHKItem *item = [SHKItem text:NoteDetail.text];

// SHKItemを引数に指定してShareKitのアクションシートを生成
SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];

// ShareKitのアクションシートを表示
[actionSheet showInView:self.view];

[SHK flushOfflineQueue];
}



// カレンダーイベント
-(IBAction)executeSave:(id)sender {

// 新しいカレンダーイベントを作成
EKEvent *event = [EKEvent eventWithEventStore:self.eventStore];

// イベントのタイトルを設定
event.title = [NSString stringWithFormat:@"Memo",self.mailButton];

// 開始日を設定
event.startDate = [[NSDate alloc] init];
// 終了日を設定
event.endDate = [[NSDate alloc] initWithTimeInterval:60 sinceDate:event.startDate];
// 表示内容を設定
event.notes = NoteDetail.text;

// イベントが関連付けられるカレンダーを設定
[event setCalendar:[self.eventStore defaultCalendarForNewEvents]];

// イベントをカレンダーデータベースに保存
[self.eventStore saveEvent:event span:EKSpanThisEvent error: nil];

//カレンダー保存のアラート
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Success!"
message:@"Recorded in the iOS Calendar!"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"OK", nil];
[alert show];
}










-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
if(self.Notedict != nil){
NoteDetail.text = [Notedict objectForKey:@"Text"];

}

}

-(void) viewWillDisappear:(BOOL)animated {
//NSLog (@"Unregsitering for keyboard events");
[[NSNotificationCenter defaultCenter] removeObserver:self];


//if we edited lets save the note in case we're exiting for a text or incoming call
if(didEdit){
[self savePlist];

}
}

/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/

-(void) keyboardDidShow: (NSNotification *)notif {
if (keyboardVisible) {
//NSLog(@"Keyboard is already visible. Ignoring notofication.");
return;
}

//The keyboard wasn't visible before

// Get the size of the keyboard.
NSDictionary* info = [notif userInfo];
NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;

//resize the scroll view
CGRect viewFrame = self.view.frame;
viewFrame.size.height -= (keyboardSize.height);
viewFrame.size.height -= [toolBar frame].size.height;
scrollView.frame = viewFrame;

//change the button to a done instead of save

self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(save:)] autorelease];
keyboardVisible = YES;
}

-(void) keyboardDidHide: (NSNotification *)notif {


NSDictionary* info = [notif userInfo];
NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;
CGRect viewFrame = self.view.frame;
viewFrame.size.height += keyboardSize.height;
scrollView.frame = viewFrame;

if (!keyboardVisible) {
//NSLog(@"Keyboard is already hidden. Ignoring notification.");
return;
}

keyboardVisible = NO;

}



//mail
- (IBAction)mail:(id)sender;{
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:@"Choose"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:@"Mail",nil];
[actionSheet showInView:self.view];
[actionSheet release];
}

// アクションシート カレンダー、Mail、キャンセルに対応

- (void)actionSheet:(UIActionSheet *)actionSheet
clickedButtonAtIndex:(NSInteger)buttonIndex
{if (buttonIndex == 0) {[self launchMailComposer]; // Mail送信の記述
}
}


//メールの組み立て
-(void)launchMailComposer{

Class klass = NSClassFromString(@"MFMailComposeViewController");
if(klass != nil) {
if([klass canSendMail]) {
[self openMailComposer];
} else {
[self openMailApp];
}}

}



- (void) openMailComposer {
// メールコンポーザーを起動する場合
MFMailComposeViewController *picker =
[[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;


// ヘッダの指定
[picker setSubject:@"From ABC iNote!"];
[picker setToRecipients:MAIL_TO];
[picker setCcRecipients:MAIL_CC];
[picker setBccRecipients:MAIL_BCC];
[picker setMessageBody:NoteDetail.text isHTML:NO];



// 起動
[self presentModalViewController:picker animated:YES];

}

- (void) openMailApp {
// メールアプリに切り替えの場合
NSString *query =
[NSString stringWithFormat:@"mailto:%@?cc=%@&bcc=%@&subject=%@&body=%@",
[MAIL_TO componentsJoinedByString:@","],
[MAIL_CC componentsJoinedByString:@","],
[MAIL_BCC componentsJoinedByString:@","], MAIL_SUBJECT, NoteDetail.text];
NSString *q =
[query stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:q]];
}

- (void) mailComposeController:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
// resultに、メール送信の結果が入る
[self dismissModalViewControllerAnimated:YES];

//メール送信結果のアラート
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Success!"
message:@""
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"OK", nil];
[alert show];
[alert release];

}


//セーブボタンとキャンセルボタン

- (IBAction) save: (id) sender {

if(keyboardVisible){
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(save:)] autorelease];
[NoteDetail resignFirstResponder];
keyboardVisible=NO;
return;

}

[self savePlist];

// NSLog(@"Save pressed!");
[self dismissModalViewControllerAnimated:YES];
}


- (void) savePlist{

// Create a new dictionary for the new values
NSMutableDictionary* newNote = [[NSMutableDictionary alloc] init];

[newNote setValue:NoteDetail.text forKey:@"Text"];
[newNote setObject:[NSDate date] forKey:@"CDate"];


if(self.Notedict != nil){
// We're working with an exisitng note, so let's remove
// it from the array to get ready for a new one
[noteArray removeObject:Notedict];
self.Notedict = nil; //This will release our reference too

}

// Add it to the master array and release our reference
[noteArray addObject:newNote];

//important, without this it double creates your saved note on exit due to saving on viewWillDissapear
didEdit = NO;

[newNote release];

// Sort the array since we just aded a new drink
NSSortDescriptor *nameSorter = [[NSSortDescriptor alloc] initWithKey:@"CDate" ascending:NO selector:@selector(compare:)];
[noteArray sortUsingDescriptors:[NSArray arrayWithObject:nameSorter]];
[nameSorter release];



}



- (IBAction) cancel: (id) sender {
// NSLog(@"Cancel pressed!");
// handle popup warning of unsaved changes

if(!didEdit)
{
[self dismissModalViewControllerAnimated:YES];
}
else
{
// open a alert with an OK and cancel button
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Unsaved Changes!" message:@"Close without saving?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
[alert show];
[alert release];

}



}



- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
// the user clicked one of the OK/Cancel buttons
if (buttonIndex == 0)
{
//NSLog(@"cancel")

}
else
{
[self dismissModalViewControllerAnimated:YES];
//NSLog(@"ok");
}
}

- (void)textViewDidChange:(UITextView *)NoteDetail{

//text field has started edit session show warning on cancel without save
didEdit = YES;
//NSLog(@"didEdit=YES");

}

- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {

// NSLog(@"viewDidUnload");

[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}



- (void)dealloc {
// [noteArray release];
// [Notedict release];
[NoteDetail release];
[scrollView release];
[super dealloc];
}


@end

拍手[0回]