请求成员查看非结构或联合的东西

时间:2010-06-15 13:21:05

标签: iphone

构建我的应用程序iphone时出现此错误: 请求[CommuneSlider.view removeFromSuperview]上的非结构或联合的成员查看;

代码: - (void)CommuneSelected {

CommuneDetailsViewController *com = [[CommuneDetailsViewController alloc] initWithNibName:@"CommuneDetailsViewController" bundle:nil];

UINavigationController *navig = [[UINavigationController alloc] 
                               initWithRootViewController:com];
[self setCommuneDetails:(CommuneDetailsViewController *) navig];
[navig setNavigationBarHidden:YES];
[com release];
[navig release];


[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.8];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES];

[CommuneSlider.view removeFromSuperview];
[self.window addSubview:[CommuneDetails view]];

[UIView commitAnimations];

}

需要帮助

3 个答案:

答案 0 :(得分:1)

好的,这是AzurGuideAppDelegate.h:

@class CommuneSliderController, AccueilViewController,CommuneDetailsViewController;

@interface AzurGuideAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    AccueilViewController *AccueilController;
    CommuneSliderController *CommuneSlider;
    CommuneDetailsViewController *CommuneDetails;
    UINavigationController *navigationControl;

}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet AccueilViewController *AccueilController;
@property (nonatomic, retain) IBOutlet CommuneSliderController *CommuneSlider;
@property (nonatomic, retain) IBOutlet CommuneDetailsViewController *CommuneDetails;


- (void) goBack;
- (void) goFront;
- (void) CommuneSelected;

@end

这里是我定义方法的AzurGuideAppDelegate.m:

#import "AzurGuideAppDelegate.h"
#import "AccueilViewController.h"


@implementation AzurGuideAppDelegate

@synthesize window;
@synthesize AccueilController;
@synthesize CommuneSlider;
@synthesize CommuneDetails;


- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch

    [window addSubview:AccueilController.view];
    [window makeKeyAndVisible];
}

- (void) CommuneSelected {

    CommuneDetailsViewController *com = [[CommuneDetailsViewController alloc] initWithNibName:@"CommuneDetailsViewController" bundle:nil];

    UINavigationController *navig = [[UINavigationController alloc] 
                                   initWithRootViewController:com];
    [self setCommuneDetails:(CommuneDetailsViewController *) navig];
    [navig setNavigationBarHidden:YES];
    [com release];
    [navig release];


    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:.8];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES];
    [CommuneSlider.view removeFromSuperview];
    [self.window addSubview:[CommuneDetails view]];

    [UIView commitAnimations];
}

和我的CommuneSliderController类:

#import "AzurGuideAppDelegate.h"
#import "CommuneSliderController.h"
#import "CoverFlowView.h"
#import "CoverViewController.h"

#define CVC_VIEW_TAG        999

@implementation CommuneSliderController


- (IBAction) goFront:(id) sender {
    AzurGuideAppDelegate *main = (AzurGuideAppDelegate *)[[UIApplication sharedApplication] delegate];
    [main goFront]; 
}

 // 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 loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
    UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    contentView.backgroundColor = [UIColor whiteColor];
    self.view = contentView;
    [contentView release];
    [[UIApplication sharedApplication] setStatusBarHidden:YES];

    CoverViewController *cvc = [[CoverViewController alloc] init];
    cvc.view.tag = CVC_VIEW_TAG;
    [self.view addSubview:cvc.view];    
}

答案 1 :(得分:1)

如果这是错误行:

请求在[CommuneSlider.view removeFromSuperview]上的非结构或联合的成员视图;

似乎表明CommuneSlider没有“view”成员。变量的名称让我觉得它是一个UIControl,而不是UIViewController的子类(它有一个view属性)。

你确定你不想要这样的东西:

[CommuneSliderController.view removeFromSuperview];

答案 2 :(得分:0)

如果这是C ++,我会说“有一个指向一个类的指针,你试着说pClass.foo而不是pClass->foo”,或者是“view”的类型由于某种原因,您尝试访问的变量未知。也许这对Objective-C也有帮助。