作者tentenlee (天天)
看板MacDev
标题Re: [问题] tableview 无法Reloaddata + Reject抱怨
时间Fri Feb 1 09:05:33 2013
※ 引述《elver (elver)》之铭言:
: 不好意思小弟才刚入门,
: 想询问一下关於tableview reloaddata 的问题
: 在此先说一声谢谢~~
: 在程式启动後,table的确会照plist内的数量而建,
: 我也确定按下 add按钮後,array的确有增加而且存进plist内,
: 因为关掉程式後再开启,table就是plist的数量,
: 问题是 "我按reload那颗按钮,tableview不会更新"
: 所以想问一下.我有那里弄错...
: ---------------------------------------------------
: 这是我的 .h档
: @interface ViewController :UIViewController
: <UITableViewDataSource,UITableViewDelegate>
: {
: UITableView *tableView;
: }
: @property (nonatomic,retain)UITableView *tableView;
: @end
: ----------------------------------------------------
: ----------------------------------------------------
: 以下是我的 .m档(不含tableview建置部分及array存取plist部分 )
: @interface ViewController ()
: {
: NSMutableArray *array; ///拿来建置tableview的array
: }
: @end
: @implementation ViewController
: @synthesize tableView;
: - (void)viewDidLoad
: {
: [super viewDidLoad];
: array = [[NSMutableDictionary alloc] init];
: array=[self takePlist]; ///将plist内资料读出到array
: ///布置一层view
: UIView *overlayView=[[UIView alloc]initWithFrame:CGRectMake(0,0,320,480)];
: ///建tableview
: UITableView *tableView = [[UITableView alloc]initWithFrame:
: CGRectMake(0,0,320,480) style:UITableViewStylePlain];
重点在这行 这不是你前面所宣告的tableview
你又建立了一个名叫tableview的tableview
把它改成
self.tableView = [[UITableView alloc]initWithFrame:
CGRectMake(0,0,320,480) style:UITableViewStylePlain];
应该就可以了 有提到tableview的地方都改这样
上面有几篇文章在讲setter跟getter的观念 请看一下
你有synthesize所以应该是要用self.tableview但是你又宣告了一个tableview
然後在method里面又在宣告了一个tableview
请习惯在synthesize物件的时候多加=_
例: @synthesize myTableView=_myTableView;
这样你再用setter跟getter的时候他就会跟你说错误 久了你就会习惯了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.84.254.121
※ 编辑: tentenlee 来自: 219.84.254.121 (02/01 09:08)
1F:推 elver:可以relod了,感谢 02/01 09:53
2F:推 whitefur:现在已经不用加在synthesize的时候指定iVar罗 02/01 22:31
3F:→ whitefur:compiler会自动帮你加 _xxxxx 02/01 22:31
4F:→ tentenlee:痦{在在修改旧专案 她不会帮我家 所以我还是会手动 02/02 02:42