我正试图理解UiActionSheet的约会选择。
获取两个我似乎无法清除的警告,请参阅代码部分末尾的代码。
警告:语义问题:将'DeveloperTL *‘发送给不兼容类型'id'的参数
和
警告:语义问题:将'DeveloperTL *‘发送给不兼容类型'id'的参数
有什么办法来修正这些警告吗?
我从其他几个示例中复制的代码:
define kPickerTag 200
define SelectButtonIndex 1
define CancelButtonIndex 2
NSString *strPrintDate;
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex != [actionSheet cancelButtonIndex]) {
//set Date formatter
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM/dd/YYYY h:mm a"];
//Gets our picker
UIDatePicker *ourDatePicker = (UIDatePicker *) [actionSheet viewWithTag:kPickerTag];
NSDate *selectedDate = [ourDatePicker date];
NSString *msg = [[NSString alloc] initWithFormat:@"The date that you had selected was, %@", [formatter stringFromDate:selectedDate]];
[formatter release];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Date" message:msg delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
[msg release];
}
}
-(void)willPresentActionSheet:(UIActionSheet *)actionSheet {
UIDatePicker *pickerView = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 50, 100, 116)];
[pickerView setTag:kPickerTag];
[pickerView setDatePickerMode:UIDatePickerModeDate];
if( strPrintDate != @"" && strPrintDate != nil )
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM-dd-yyyy"];
NSDate *pickerdate = [dateFormat dateFromString:strPrintDate];
[pickerView setDate:pickerdate animated:YES];
[dateFormat release];
}
[actionSheet addSubview:pickerView];
[pickerView release];
NSArray *subViews = [actionSheet subviews];
[[subViews objectAtIndex: SelectButtonIndex] setFrame:CGRectMake(20, 266, 280, 46)];
[[subViews objectAtIndex:CancelButtonIndex] setFrame:CGRectMake(20, 317, 280, 46)];
}
- (IBAction)butn1 {
UIActionSheet *asheet = [[UIActionSheet alloc]
initWithTitle:@"Pick the date you want to see." delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Select", nil];
// THIS IS THE ERROR MESSAGE:
// **warning: Semantic Issue: Sending 'DeveloperTL *' to parameter of incompatible type // 'id<UIActionSheetDelegate>'**
[asheet showInView:[self.view superview]];
[asheet setFrame:CGRectMake(0, 117, 320, 383)];
[asheet release];
}发布于 2011-06-23 13:33:53
您使用UIActionSheet的类需要使用UIActionSheetDelegate协议进行确认。
在.h类中使用如下所示。
@interface myClass: UIView <UIActionSheetDelegate>
{
}
@end发布于 2011-06-23 13:34:06
在.h文件中添加以下内容
your interface :UIViewController<UIActionSheetDelegate>https://stackoverflow.com/questions/6454871
复制相似问题