inohilog

/var/log/inohiro.log

ううむ

上のコードだとダメで、下のコードだといける。どっちもコンパイルは通る。

わたしが書いたコード

- ( void ) actionSheet:( UIActionSheet* ) actionSheet 
clickButtonAtIndex:( NSInteger )buttonIndex
{
	// Check Button Indexes
	if( buttonIndex >= 3 )
		return;
	
	// SourceType
	UIImagePickerControllerSourceType sourceType = 0;
	switch ( buttonIndex ) 
	{
		case 0:
		{
			sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
			break;
		}
		case 1:
		{
			sourceType = UIImagePickerControllerSourceTypeCamera;
			break;
		}
		case 2:
		{
			sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
			break;
		}
//		default:
//			break;
	}
	
	// Check Availabirity
	if( ![UIImagePickerController isSourceTypeAvailable:sourceType] )
		return;
	
	// Create UIImagePickerControll
	UIImagePickerController* imagePicker;
	imagePicker = [[UIImagePickerController alloc] init];
	[imagePicker autorelease];
	imagePicker.sourceType = sourceType;
	imagePicker.allowsImageEditing = YES;
	imagePicker.delegate = self;
	
	// Show UIImagePickerController
	[self presentModalViewController:imagePicker animated:YES];
}

お手本コード

- (void)actionSheet:(UIActionSheet*)actionSheet 
clickedButtonAtIndex:(NSInteger)buttonIndex
{
    // ボタンインデックスをチェックする
    if (buttonIndex >= 3) {
        return;
    }
	
    // ソースタイプを決定する
    UIImagePickerControllerSourceType sourceType = 0;
    switch (buttonIndex) {
		case 0: {
			sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
			break;
		}
		case 1: {
			sourceType = UIImagePickerControllerSourceTypeCamera;
			break;
		}
		case 2: {
			sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
			break;
		}
    }
	
    // 使用可能かどうかチェックする
    if (![UIImagePickerController isSourceTypeAvailable:sourceType]) {  
        return;
    }
	
    // イメージピッカーを作る
    UIImagePickerController*    imagePicker;
    imagePicker = [[UIImagePickerController alloc] init];
    [imagePicker autorelease];
    imagePicker.sourceType = sourceType;
    imagePicker.allowsImageEditing = YES;
    imagePicker.delegate = self;
	
    // イメージピッカーを表示する
    [self presentModalViewController:imagePicker animated:YES];
}

結果

関数名のところで

- ( void ) actionSheet:( UIActionSheet* ) actionSheet clickButtonAtIndex:( NSInteger )buttonIndex

となっていましたが、

- ( void ) actionSheet:( UIActionSheet* ) actionSheet clickedButtonAtIndex:( NSInteger )buttonIndex

が正しかったようです。「clickButtonAtIndex」ではなくて「clickedButtonAtIndex」。ううむ。