在我的视图控制器的主要文件,我创建了一个属性名为finalStringsArray
一个NSArray对象:全局变量工作不正常
@property (strong, nonatomic) NSArray *finalStringsArray;
然后在viewDidLoad中,我一定要初始化对象
self.finalStringsArray = [[NSArray alloc]init];
再往下viewDidLoad方法的实现,我查询我的数据服务器,摆脱一些服务器发送我像空白额外的垃圾,然后我把我里面我完美的琴弦阵列:
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
NSString *parseString = [[NSString alloc]initWithFormat:@"%@", objects];
NSString *cURL=[self stringBetweenString:@"=" andString:@")" withstring:parseString];
NSString *newString = [cURL stringByReplacingOccurrencesOfString:@" " withString:@""];
NSString *newString2 = [newString stringByReplacingOccurrencesOfString:@"(" withString:@""];
NSString *newString3 = [newString2 stringByReplacingOccurrencesOfString:@"\\n" withString:@""];
_finalStringsArray = [newString3 componentsSeparatedByString:@","];
int index;
for(index = 0; index < _finalStringsArray.count; index++) {
NSString *string = [[NSString alloc]init];
string = _finalStringsArray[index];
NSLog(@"Count: %d", _finalStringsArray.count);
}
NSLog(@"Count: %d", _finalStringsArray.count);
} }
];}
所有在上面的代码中重要的是这样一句话:_finalStringsArray = [newString3 componentsSeparatedByString:@","];
这增加了我的琴弦敲定我_finalStringsArray
数组对象。你会发现,我NSLogging我的数组的Count属性:NSLog(@"Count: %d", _finalStringsArray.count);
当我执行这些NSLogs,他们总是用的NSLog 2.
正确的计数这里是我的问题,但。再往下,我有一个方法实现,需要使用_finalStringsArray
的count属性。但由于某种原因,它总是NSLogs为“0”,我无法弄清楚原因。
下面是我的viewDidLoad下的3个方法实现。我需要能够访问的_finalStringsArray
计数属性的方法实施 -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
:
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
NSLog(@"all good string count3: %d", _finalParseStrings.count);
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1 ;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"all good string count5: %d", [self.finalStringsArray count]);
return [self.finalStringsArray count];
}
简直没有用全局变量(特别是当你刚刚开始时)有很多地方可以说。简单地说,学会使用单身。毕竟,应用程序是一个单例,它是“保持一到两个”全球需要“概念的一个好地方。所有你需要做的就是添加一个属性到AppDelegate.h - 然后在你想要的任何地方使用它。再简单不过了。你可以在你的前缀文件中包含一个方便的宏:** #define APP((AppDelegate *)[[UIApplication sharedApplication] delegate])** – Fattie