1

我在我的 iOS 应用程序中使用 EGOTableViewPullRefresh 库。为了实现它,我不得不将原来的类从 UIViewController 的子类更改为 UITableViewController。这显然破坏了我存储数据的方式,例如在 NSMutableArray 中。

标题:

#import <UIKit/UIKit.h>
#import "EGORefreshTableHeaderView.h"

@interface PullViewController : UITableViewController  <EGORefreshTableHeaderDelegate, UITableViewDelegate, UITableViewDataSource>{

    NSArray *news;
    NSMutableArray *data;

    EGORefreshTableHeaderView *_refreshHeaderView;

    //  Reloading var should really be your tableviews datasource
    //  Putting it here for demo purposes
    BOOL _reloading;
}

- (void)reloadTableViewDataSource;
- (void)doneLoadingTableViewData;

@end

执行:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
    data = [[NSMutableData alloc] init];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theData{
    [data appendData:theData];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    news = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
    [self.tableView reloadData];
    [DejalBezelActivityView removeViewAnimated:YES];
}
4

3 回答 3

2

我不明白你怎么能用 aNSMutableArray而不是NSMutableData. 实际上,您只是在实例化一个NSMutableData. 因此,将您的数据声明更改为NSMutableData您的类 ivars 中的类型。

于 2012-12-09T05:33:41.663 回答
2

您声明dataNSMutableArray,并且该类没有任何appendData:选择器。

于 2012-12-09T05:46:27.153 回答
1

试试这个

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSMutableData *)theData{
    [data appendData:theData];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theData{
    [data appendData:theData];
}

还,

NSArray *news;
NSMutableArray *data; 

你确定数据是一种数组吗?或者它应该是 NSMutableData..检查一次 :)

于 2012-12-09T05:34:05.157 回答