iPhone拥有数组,超出范围

时间:2011-04-27 09:20:14

标签: iphone arrays class nsstring

我创建了自己的类,calles cls_myClass。

**cls_myClass.h**

@interface cls_myClass : NSObject {
  NSString *i_something;
}
@property (nonatomic, retain) NSString *i_something;
-(NSString *) get_something;
@end

在我的RootViewController中,我有一个计时器,一个数组和一个tableview。

**RootViewController.h**

@interface RootViewController : UITableViewController {
   MSMutableArray *i_array;
   NSTimer *i_timer;
}
...
@end

现在我将timerintervall添加到i_array的一些新值:

**RootViewController.m**
cls_myClass *dummy = [[cls_myClass alloc] init];
[dummy addSomething:@"test"];

[i_array addObject: dummy];
[self.tableView reloadData];

函数 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection返回来自i_array的正确项目数

现在我想从i_array获取Items并将它们放入tableView

**RootViewController.m**
- (UITableViewCell *)tableView(UITableview *)tableView cellForRowAtIndexPath(NSIndexPath *)indexPath {
//...

int *max = [i_array count];
int *idx = indexPath.row;

cls_myClass *dummy = [i_array objectAtIndex:idx];

NSString *something = [dummy get_something];
}

问题是,var某些东西超出了范围,但我不知道为什么......

也许有人可以帮助我? :)

感谢 希伯特

1 个答案:

答案 0 :(得分:1)

使用

int max = [i_array count];
int idx = indexPath.row;

而不是

int *max = [i_array count];
int *idx = indexPath.row;

您应该阅读:http://developer.apple.com/mac/library/documentation/cocoa/conceptual/MemoryMgmt/MemoryMgmt.html