Oke, saya serius dalam hal ini, tidak masuk akal jadi itu pasti bug, atau kesalahan sangat bodoh yang saya buat.
Begini situasinya: Saya punya UIViewController dengan file xib. Ia memiliki UIView yang terhubung ke properti view, UIImageView terhubung ke properti bernama imageView, dan UISegmentedControl terhubung ke segmentControl.
Namun dalam kode saya, saya tidak dapat menetapkan gambar ke tampilan gambar. Saat saya NSLog objeknya, saya mendapatkan alamat 0x0, jadi tidak terkait sama sekali. Saya telah mengatur pengikatan di pembuat Antarmuka, saya telah memulai ulang XCode dan membersihkan serta membangun proyek. Tidak ada yang berhasil dan saya telah membuang banyak waktu untuk mencoba memikirkan hal ini pada saat ini. Saya juga telah NSLog objek segmentControl dan saya mendapatkan 0x0 juga. Jadi tidak ada apa pun dari XIB yang terhubung dengan kodenya, tetapi XIB itu sendiri sedang memuat karena objeknya ditampilkan di layar.
Adakah yang punya ide tentang apa yang mungkin saya lewatkan? Ini adalah hal yang sangat sederhana, sangat membuat frustrasi karena tiba-tiba tidak berfungsi.
Berikut kode di bawah ini, dalam hal ini saya mengakses objek di setter untuk projectId, tetapi saya juga mencoba mengakses imageView dari kelas lain dan tidak berhasil juga (dan ya, saya memiliki deklarasi @property dan mensintesis untuk imageView ketika saya mencoba).
DiagramViewController.h:
#import <UIKit/UIKit.h>
@interface DiagramViewController : UIViewController
{
NSUInteger projectId;
IBOutlet UIImageView *imageView;
IBOutlet UISegmentedControl *segmentControl;
}
@property NSUInteger projectId;
@end
DiagramViewController.m:
#import "DiagramViewController.h"
@implementation DiagramViewController
@synthesize projectId;
-(void)setProjectId:(NSUInteger)projId
{
NSLog(@"imageView: %@", imageView);
NSLog(@"segmentControl: %@", segmentControl);
projectId = projId;
NSString *filePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%i_schem", projectId] ofType:@"png" inDirectory:@"project-details/images/diagrams"];
NSData *imageData = [NSData dataWithContentsOfFile:filePath];
imageView.image = [UIImage imageWithData:imageData];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Overriden to allow any orientation.
return YES;
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end
Dan inilah gambar hookup Interface Builder:
-loadView
, tapi saya ingin melihat beberapa kode sehingga kami dapat menjawabnya dengan benar. - person jer   schedule 11.11.2010