無論我以什麼樣的組合執行操作,NSLog
總會返回成功搜索的數組對象的錯誤索引號。obj-c無法從搜索到的數組中找到索引/錯誤的輸出
代碼:
-(void)secondbuttonClickedDivi:(id)sender{
UIButton *xbutton = (UIButton *)sender;
// NSLog(@"%@arraysucks",);
//NSArray *subviews = [self.coview subviews];
// same bogus oupit of index like in [self.coview subviews] :
NSArray *subviews= [[NSArray alloc] initWithObjects:xbutton,nil];
NSLog(@"%@subarray",subviews);
NSString *search = [NSString stringWithFormat:@"tag = %ld%@", [sendertag],@";"];
// test search .
NSString *dummysearch= @"tag = 54;";
NSLog(@"%@%@",@" : search", search);
NSLog(@"%@%@",@" : search",dummysearch);
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"subviews CONTAINS %@",search];
NSLog(@"%@predicate", predicate);
NSArray *filteredArray = [subviews filteredArrayUsingPredicate:predicate];
NSString *findtag = [NSString stringWithFormat:@"%@", predicate];
NSString *gettag = [findtag substringFromIndex: 24];
NSString *lastget = [gettag substringToIndex:NSMaxRange([gettag rangeOfComposedCharacterSequenceAtIndex:2])];
long value = [lastget longLongValue];
NSLog(@"findtag: %@", gettag);
NSLog(@"lastget: %@", lastget);
NSLog(@"%ldvalue",value);
if(_checkstate==2){
_checkstate=1;
if([sender tag]!= value){
[[subviews objectAtIndex:value] setTitle:_resetbuttonTitle forState:UIControlStateNormal];
xbutton.backgroundColor = [UIColor whiteColor];
}
}
NSLog(@"%@dsendertag",_resetbuttonTitle);
NSLog(@"%ldsendertag",[sender tag]);
NSInteger anIndex=[filteredArray indexOfObject:xbutton];
NSLog(@"%ld : isIndex",anIndex);
}
的NSLog輸出:
( UIButton: 0x7fdf1a422550; frame = (161 281; 42 42); opaque = NO; tag = 48; layer = <CALayer: 0x600000224ee0>> )subarray : searchtag = 48; : searchtag = 54; subviews CONTAINS "tag = 48;"predicate findtag: 48;" lastget: 48 48value 48:6dsendertag 48sendertag 9223372036854775807 : isIndex 1checkstate
除假索引輸出的所有陣列搜索是成功的,但我真正需要的是指數。
你想在這裏做什麼? – Adeel