我目前正在尝试开发一个 iPhone 应用程序。大多数事情都按照我的期望和偏好进行。
现在我遇到的问题是,当向我的一个 ViewControllers 添加方法时,这些方法在我的应用程序的其他部分不可见。
当我向其他视图控制器添加具有相同签名的相同方法时,它们将是可见的。
我用谷歌搜索,浏览了stackoverflow,重读,复制/粘贴,并向意大利面条怪物祈祷以获得神圣的洞察力,但无济于事。
一定有一些小细节,我愚蠢地忽略了。我希望你能帮助我!
InfoPageViewController.h
#import <UIKit/UIKit.h>
#import "DB.h"
@interface InfoPageViewController : UIViewController
{
IBOutlet UIWebView* wv;
DB* db;
}
@property (retain, nonatomic) IBOutlet UIWebView* wv;
-(void) reloadInfoPage;
@end
InfoPageViewController.m
#import "InfoPageViewController.h"
@interface InfoPageViewController ()
@end
@implementation InfoPageViewController
@synthesize wv;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = NSLocalizedString(@"Information", @"Information");
self.tabBarItem.image = [UIImage imageNamed:@"TabIcon-Settings"];
db = [[DB alloc] init];
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
DBInfoPage* dbip = [db getInfopage];
[wv loadHTMLString:dbip.html baseURL:nil];
//NSLog(@"word%@", dbip.html);
[self reloadInfoPage];
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(void)reloadInfoPage
{
DBInfoPage* dbip = [db getInfopage];
[wv loadHTMLString:dbip.html baseURL:nil];
NSLog(@"reloading infopage%@", @"");
}
@end
infoviewtest.h
#import <UIKit/UIKit.h>
#import "InfoPageViewController.h"
@interface infoviewtest : NSObject
@end
infoviewtest.m
#import "infoviewtest.h"
@implementation infoviewtest
-(void)test
{
InfoPageViewController* ivc = [[InfoPageViewController alloc] init];
[ivc reloadInfoPage];
}
@end
这会产生错误“‘InfoPageViewController’没有可见的@interface声明选择器‘reloadInfoPage’。
我还尝试使用自动完成向我展示“InfoPageViewController”的可用方法,这会产生一个不包含“reloadInfoPage”的列表,类似地,实例变量“wv”在类范围之外是不可见的。
我尝试关闭并重新打开 xcode,以及重新启动计算机。我也试图“清理”这个项目。
我的头发部分将不胜感激任何帮助,但尚未感到沮丧。
如果我一直缺乏提供信息,请提出要求,我会尽力回复。
约翰·阿比尔兹科夫