今天有个功能要求每次传入不同数据 等一轮过后 重新轮询
手头上现有一份小文件 txt格式
记录一下实现的方法
1.由于txt文件格式规整 所以 在读取文档以后 使用 \n 换行来拆分字符串
2.使用 i%4 = 1 来获取特定行的数据
.h文件如下
//
// LFFStringarr.h
// LFFStringArray
//
// Created by Lff on 16/10/14.
// Copyright © 2016年 Lff. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface LFFJieFengCompenyInfo : NSObject
@property (nonatomic,strong) NSMutableArray *arrJFName;
@property (nonatomic,strong) NSMutableArray *arrJFNO;
@property (nonatomic,strong) NSMutableArray *arrJFKey;
@end
@interface LFFStringarr : NSObject
-(LFFJieFengCompenyInfo*)getJieFengCompenyInfoModel;
@end
.m文件如
//
// LFFStringarr.m
// LFFStringArray
//
// Created by Lff on 16/10/14.
// Copyright © 2016年 Lff. All rights reserved.
//
#import "LFFStringarr.h"
@interface LFFJieFengCompenyInfo ( )
{
}
@end
@implementation LFFJieFengCompenyInfo
+(NSArray*)makeStringArrar{
NSString *path = [[NSBundle mainBundle] pathForResource:@"捷丰商户" ofType:@"txt"];
NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSArray *arr = [string componentsSeparatedByString:@"\n"];
NSLog(@"%ld",arr.count);
return arr;
}
@end
@implementation LFFStringarr
-(LFFJieFengCompenyInfo*)getJieFengCompenyInfoModel{
LFFJieFengCompenyInfo *model = [[LFFJieFengCompenyInfo alloc] init];
model.arrJFNO = [NSMutableArray arrayWithCapacity:0];
model.arrJFKey = [NSMutableArray arrayWithCapacity:0];
model.arrJFName = [NSMutableArray arrayWithCapacity:0];
NSArray *arr = [NSArray array];
arr = [LFFJieFengCompenyInfo makeStringArrar];
for (int i = 0; i<arr.count; i++) {
if ((i+1)%4 == 1) { //商户号
if ([arr[i] rangeOfString:@"生产商户号:"].location == !NSNotFound ) {
NSArray *arrjf = [arr[i] componentsSeparatedByString:@":"];
[model.arrJFNO addObject:arrjf[1]];
}
}
if ((i+1)%4 == 2) { //商户名
if ([arr[i] rangeOfString:@"生产商户名称:"].location == !NSNotFound ) {
NSArray *arrjf = [arr[i] componentsSeparatedByString:@":"];
[model.arrJFName addObject:arrjf[1]];
}
}
if ((i+1)%4 == 3) { //商户Key
if ([arr[i] rangeOfString:@"生产商户密钥:"].location == !NSNotFound ) {
NSArray *arrjf = [arr[i] componentsSeparatedByString:@":"];
[model.arrJFKey addObject:arrjf[1]];
}
}
if ((i+1)%4 == 0) { //空行
}
}
return model;
}
@end
实例化方法如下
LFFStringarr *lff = [[LFFStringarr alloc]init];
LFFJieFengCompenyInfo *mode = [lff getJieFengCompenyInfoModel];
NSLog(@"%ld,%ld,%ld",mode.arrJFNO.count,mode.arrJFKey.count,mode.arrJFName.count);
for (NSString *s in mode.arrJFNO) {
NSLog(@"%@",s);
}
for (NSString *s in mode.arrJFKey) {
NSLog(@"%@",s);
}
for (NSString *s in mode.arrJFName) {
NSLog(@"%@",s);
}
轮询实现
使用
LFFStringarr *lff = [[LFFStringarr alloc]init];
LFFJieFengCompenyInfo *mode = [lff getJieFengCompenyInfoModel];
NSString *ii = [[NSUserDefaults standardUserDefaults] objectForKey:@"ii"];
NSInteger iii = [ii integerValue];
ZFBVc.infoArr = @[mode.arrJFNO[iii],ZFBBACKURL,mode.arrJFKey[iii],mode.arrJFName[iii]];
iii = iii+1;
if (iii == mode.arrJFName.count) {
iii = 0;
[[NSUserDefaults standardUserDefaults] setObject:[NSString stringWithFormat:@"%li",(long)iii] forKey:@"ii"];
}else{
[[NSUserDefaults standardUserDefaults] setObject:[NSString stringWithFormat:@"%ld",(long)iii] forKey:@"ii"];
}