我想從我的主包中加載一個plist,並且它工作得不太好。我一直在創建一個無效的CFStringRef,導致我想要的所有顯示都爲零。按鈕和圖像沒有被添加到設備上的視圖(在模擬器中工作)
使這更奇怪。它在模擬器中完美工作。我附上了這張圖片來幫助解釋。
http://img847.imageshack.us/img847/1185/screenshot20110325at120m.png
這沒有任何意義,我。它在模擬器中工作,爲什麼它不能在設備上工作?
- (void)viewDidLoad {
[super viewDidLoad];
imageV = [[UIImage alloc]init];
imageV = [UIImage imageNamed:[NSString stringWithFormat:@"%@", imageTitle]];
button = [UIButton buttonWithType:UIButtonTypeCustom];
CGRect frame = CGRectMake(0, 0, 320, 65);
button.frame = frame; // match the button's size with the image size
[button setBackgroundImage:imageV forState:UIControlStateNormal];
[button addTarget:self action:@selector(adClicked:) forControlEvents:UIControlEventTouchUpInside];
button.backgroundColor = [UIColor clearColor];
[self.view addSubview:button];
NSLog(@"%i %@", [self.view.subviews count], webLink);
}
在模擬器和設備控制檯報告有在創建的每個視圖中的一個子視圖兩者。在模擬器中,該按鈕被添加並且在其圖像改變時出現。但是,在設備上,按鈕不會隨其圖像更改而出現。雖然它說按鈕在那裏,但它根本不會出現,我無法與它進行交互,或者只是沒有設置圖像。
//addScroller.m 我試過清洗目標並將圖像直接添加到應用程序文件夾中...我什麼都沒有。我的下一個賭注是它與我從plist文件或其他東西加載它的事實有關。我確實重命名了廣告文件夾,並將其設置爲小寫字母,並從頭開始。 plist會導致這個問題嗎?是我加載它改變文件大小或修改字符串的方式?
- (void)viewDidLoad {
[super viewDidLoad];
adIndex = 0;
adTimer = [[NSTimer alloc]init];
ad = [[Ad alloc]init];
adsList = [[NSMutableDictionary alloc]init];
item = [[NSDictionary alloc]init];
filePath = [[NSString alloc]init];
filePath = [[NSBundle mainBundle] pathForResource:@"Ads" ofType:@"plist"];
NSLog(@"%@", filePath);
adsList = [[[NSMutableDictionary alloc] initWithContentsOfFile:filePath]retain];
for (int i = 0; i < [adsList count]; i++) {
item = [[NSDictionary alloc]init];
item = [adsList valueForKey:[NSString stringWithFormat:@"%i", i ]];
ad = [[Ad alloc] initWith:[item objectForKey:@"adImage"] Link:[item objectForKey:@"website"]];
//[ads addObject:a];
ad.view.frame = CGRectMake(320 * i, 0, 320, 65);
[adsView addSubview:ad.view];
[item release];
}
[adsView setContentSize:CGSizeMake(320 * [adsList count], 65)];
adsView.pagingEnabled = YES;
adIndex = HBRandomInt([adsList count]);
[self scrollAds];
[NSTimer scheduledTimerWithTimeInterval:8.0
target:self
selector:@selector(scrollAds)
userInfo:nil
repeats:YES];
//[adTimer release];
//[ad release];
//[item release];
//[adsList release];
}
編輯:我裝在其他地方的應用程序的圖片和它工作得很好
它沒有工作我不知道什麼是@ __ @ – Ohmnastrum 2011-03-26 17:33:41
你嘗試過'initWithContentsOfFile:filePath'而不是'dictionaryWithContentsOfFile:filePath'嗎? – WrightsCS 2011-03-26 17:44:30
好的工作。但現在的問題是,當它在模擬器中創建並加載視圖時,視圖會顯示,但在設備上它不會顯示。相同的代碼,但它只是不會顯示在設備上。我應該更新這個問題。 – Ohmnastrum 2011-03-27 01:25:46