我有一个包含许多值的tableView.
我想获得indexPath.row当前显示的表的第一个值.
我怎样才能做到这一点?
我在实现krishnabhadra的答案时得到以下错误:
出现错误的行是:
[self.table scrollToRowAtIndexPath:indexVis atScrollPosition:UITableViewScrollPositionTop animated:YES];
Run Code Online (Sandbox Code Playgroud)
错误:
Assertion failure in -[NSIndexPath row], /SourceCache/UIKit_Sim/UIKit-1447.6.4/UITableViewSupport.m:2018
2011-04-01 11:57:25.458 GlossaryPro[1525:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid index path for use with UITableView. Index paths passed to table view must contain exactly two indices specifying the section and row. Please use the category on NSIndexPath in UITableView.h if possible.'
Run Code Online (Sandbox Code Playgroud)
可能有什么不对?
我试图解雇一个模态视图控制器,并收到以下错误:
*由于未捕获的异常'NSRangeException'终止应用程序,原因:'* - [__ NSArrayM objectAtIndex:]:索引0超出空数组的边界'
有一次,我花了4个小时试图调试这样的错误.谁能告诉我是否有办法查看这些错误的堆栈跟踪,以了解哪个对象导致了错误的访问?
谢谢!
我在其中创建了带有大量不同动物的plist(键),并在我的项目中添加了这个plist.每种动物的类型都是NSDictionary.在每个字典中还有5个键 - 这些动物的特征().我想通过每一种动物,如果我匹配这种动物的某些特征,我把这种动物放在另一个阵列中.
所以,我试着制作一个代码:
NSArray *newArray = [[NSArray alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"animals" ofType:@"plist"]];
for (int i = 0;[newArray objectAtIndex:i];i++)
{
if ([[newArray objectAtIndex:i]objectForKey:@"minAge"] == [NSNumber numberWithInt:3])
{
[array addObject:[[newArray objectAtIndex:i]objectForKey:@"name"]];
}
}
Run Code Online (Sandbox Code Playgroud)
所以objectAtIndex:i是一个动物,minAge是它的特点之一.但我的代码不起作用.我是第一次这样做,所以我做错了什么?谢谢!
更新:谢谢,你的plist工作正常!但我仍然无法理解为什么我的plist不起作用:

无论如何,非常感谢你!我在解决这个问题的时候没有吃饭和睡觉:)你帮助了我很多!
可能重复:
在NSArray中拾取随机对象
我在Objective-C中有一个带字符串的数组:
NSArray *tips;
tips = [NSArray arrayWithObjects:
@"Foo",
@"Bar",
@"Baz",
nil];
Run Code Online (Sandbox Code Playgroud)
我想要一个从数组中获取随机项并返回它的方法.有没有方法,或者我怎么能自己写一个?谢谢.
我知道有很多关于这个问题的信息,但每个答案都是"这很容易.你可以做免费桥接.",然后没有提到实际的源代码.我知道免费桥接和演员的意思.我想知道确切的源代码"如何将CFArrayRef转换为NSArray?" .有人请!!!!!!
我有一个类似于以下内容的NSArray:
6/1/13 | Data
6/2/13 | Data
7/1/13 | Data
9/1/13 | Data
Run Code Online (Sandbox Code Playgroud)
我需要以某种方式获得创建节标题的月份 - 但前提是它们在数组中然后将日期分解为适当的部分.看起来像:
(Section Header)June 2013
6/1/13 | Data
6/2/13 | Data
(Section Header)July 2013
7/1/13 | Data
(skips august as no dates from august are in array)
(Section Header)September 2013
9/1/13 | Data
Run Code Online (Sandbox Code Playgroud)
我试图实现:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return @"June 2013";
}
Run Code Online (Sandbox Code Playgroud)
但显然需要使用数组中的任何月份动态更新.日期实际上是数组中的NSDates - 如果这有任何区别.
我正在编写一些代码,这些代码将使用NSMutableArray并在其中存储int值,包含在NSNumbers中.
我想确认使用具有相同值的新NSNumber查询iOS NSArray或NSMutableArray是合法的,如果我需要显式迭代数组,并检查每个int值是否等于我想要测试的值?
这似乎有效:
NSMutableArray* walkableTiles = [NSMutableArray array];
[walkableTiles addObject:@(1)];
[walkableTiles addObject:@(2)];
[walkableTiles addObject:@(3)];
if([walkableTiles containsObject:@(1)])
{
DLog(@"contains 1"); //test passes
}
if([walkableTiles containsObject:[NSNumber numberWithFloat:2.0]])
{
DLog(@"contains 2");//test passes
}
if([walkableTiles containsObject:[NSNumber numberWithInt:3]])
{
DLog(@"contains 3");//test passes
}
Run Code Online (Sandbox Code Playgroud) 我是iOS开发的新手,我正在尝试学习Swift.我想对UITableView应用垂直alpha渐变,但是遇到了一些麻烦.
最初在这篇SO帖子之后,我做了以下事情:
var gradientMaskLayer:CAGradientLayer = CAGradientLayer()
gradientMaskLayer.frame = myTableView.bounds
gradientMaskLayer.colors = [UIColor.clearColor().CGColor, UIColor.blackColor().CGColor]
gradientMaskLayer.locations = [0.0, 0.05]
myTableView.layer.mask = gradientMaskLayer
Run Code Online (Sandbox Code Playgroud)
在得到错误Array element cannot be bridged to Objective-C并阅读此SO帖子后,我修改了使用的两个数组:
var gradientMaskLayer:CAGradientLayer = CAGradientLayer()
var gradientMaskColors:NSArray = [UIColor.clearColor().CGColor, UIColor.blackColor().CGColor]
var gradientMaskLocations:NSArray = [0.0, 0.05]
gradientMaskLayer.frame = myTableView.bounds
gradientMaskLayer.colors = gradientMaskColors
gradientMaskLayer.locations = gradientMaskLocations
myTableView.layer.mask = gradientMaskLayer
Run Code Online (Sandbox Code Playgroud)
现在得到错误 Value failed to bridge from Swift type to a Objective-C type
我很难找到解决方案.可以提供一些帮助吗?
我有一个NSString数组.
exampleArray = @[@"5", @"6", @"7", @"8", @"9", @"10", @"11", @"12", @"13", @"14", @"15", @"16", @"17", @"18", @"19", @"20"];
Run Code Online (Sandbox Code Playgroud)
假设你有..
NSString *exampleString = @"7";
Run Code Online (Sandbox Code Playgroud)
我想在exampleArray中找到exampleString,并让它返回索引2,即@"7"所在的索引.
除了循环和比较isEqualToString之外,最好的方法是什么?
如何仅使用大小初始化NSArray,以便稍后使用for循环填充它?我的for循环将是
for (int i = 0; i < [myArray count]; i++) {
myArray[i] = someData;
}
Run Code Online (Sandbox Code Playgroud) nsarray ×10
objective-c ×6
ios ×5
uitableview ×3
iphone ×2
arrays ×1
cocoa ×1
cocoa-touch ×1
debugging ×1
ios4 ×1
nsdictionary ×1
nsstring ×1
plist ×1
random ×1
search ×1
swift ×1