NSUInteger是否缺少一些东西.我本来想在我的.m文件中这样做.(我看到一些关于使用NSEnumerator的代码,但我不太了解它,所以我想我的需求,这就足够了).
所以我想这样做:
- (NSArray *)reverseArray:(NSMutableArray *)array {
NSMutableArray *anArray = [[NSMutableArray alloc] initWithCapacity:[array count]];
for (NSUInteger i = [array count] - 1; i >= 0 ; i--) {
[anArray addObject:[array objectAtIndex:i]];
}
return anArray;
}
Run Code Online (Sandbox Code Playgroud)
这给了我编译器警告:i> = 0是NSUInteger的目的,或者是那些行.当我运行该程序时,它也会崩溃并访问一些超级巨大的数字.我不太清楚为什么.我可以在任何地方将i偏移1并执行此操作,这样可行:
- (NSArray *)reverseArray:(NSMutableArray *)array {
NSMutableArray *anArray = [[NSMutableArray alloc] initWithCapacity:[array count]];
for (NSUInteger i = [array count]; (i) ; i--) {
[anArray addObject:[array objectAtIndex:i - 1]];
}
return anArray;
}
Run Code Online (Sandbox Code Playgroud)
我只是不明白为什么第一种方法不起作用.任何帮助,将不胜感激.谢谢!
我如何比较两个NSArray,以便我可以删除两个数组中没有的所有内容.
我试过这样的:
NSArray *array1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
NSArray *array2 = [NSArray arrayWithObjects:@"1",@"2",@"5",@"6", nil];
NSMutableArray *myMutableArray = [NSMutableArray arrayWithArray:array1];
NSMutableArray *myMutableArrayTwo = [myMutableArray copy];
[myMutableArray removeObjectsInArray:array2];
[array1 release];
[array2 release];
NSArray *array3 = [myMutableArray copy];
[myMutableArrayTwo removeObjectsInArray:array3]; // Error here: "SIGABRT"
NSLog(@"array3:%@",myMutableArrayTwo);
Run Code Online (Sandbox Code Playgroud)
但由于错误,它不起作用.它是:" - [__ NSArrayI removeObjectsInArray:]:无法识别的选择器发送到实例0x4e51550"
我做错了什么?或者有更简单的方法来解决我的问题?谢谢您的帮助
我有一个双重对象的NSArray ....我目前有一个for循环来通过NSArray并平均它们.我正在寻找一种方法来确定NSArray中的最小值和最大值,并且不知道从哪里开始...下面是我必须获得平均值的当前代码.
NSArray *TheArray = [[NSArray alloc] initWithArray:self.fetchedResultsController.fetchedObjects];
int TotalVisitors = [TheArray count];
double aveRatingSacore = 0;
for (int i = 0; i < TotalVisitors; i++)
{
Visitor *object = [TheArray objectAtIndex:i];
double two = [object.rating doubleValue];
aveRatingSacore = aveRatingSacore + two;
}
aveRatingSacore = aveRatingSacore/TotalVisitors;
Run Code Online (Sandbox Code Playgroud)
任何帮助,建议或代码将不胜感激.
我想NSArray按索引降序排序.
我可以排序数组值如何按索引排序...
NSArray* arr = [[NSArray alloc] initWithObjects:@"First",@"Second",@"Third",@"Fifth",@"Last",nil];
Run Code Online (Sandbox Code Playgroud)
结果应该是这样的
iOS中有没有直接的方法?
我正在使用以下代码检查对象是否存在,然后删除它:
if(titlescopy.count >= i)
{
if([[titlescopy objectAtIndex:i] isKindOfClass:[NSString class]])
{
[titlescopy removeObjectAtIndex:i];
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
*由于未捕获的异常'NSRangeException'终止应用程序,原因:'* - [__ NSArrayM objectAtIndex:]:索引2超出bounds [0 .. 1]' *第一次抛出调用堆栈:(0x365a56c3 0x3881e97f 0x364f1055 0x494b 0x37fdb8d5 0x37fe7d75 0x37fe7a81 0x38001ddd 0x38001b97 0x172bd 0x3805f8e5 0x3805f897 0x3805f875 0x3805f12b 0x3805f621 0x37f87d29 0x37f74f29 0x37f74843 0x34ea25d3 0x34ea2203 0x3657a593 0x3657a537 0x365793b9 0x364ec39d 0x364ec229 0x34ea131b 0x37fc88f9 0x283b 0x2798)libc ++ abi.dylib:终止调用抛出异常(lldb)
为什么会这样?我正在使用的代码应该在尝试删除它之前检查对象是否存在,但显然不是.
谢谢!
我有这样的指示:
[self someMethod:CGPointMake(50, 50)];
[self someMethod:CGPointMake(270, 50)];
[self someMethod:CGPointMake(50, 360)];
[self someMethod:CGPointMake(270, 360)];
...
Run Code Online (Sandbox Code Playgroud)
我想使用NSArray重构代码,如下所示:
NSArray items = [NSArray initWithObjects:
CGPointMake(50, 50),
CGPointMake(270, 50),
CGPointMake(50, 360),
CGPointMake(270, 360),
...
nil];
Run Code Online (Sandbox Code Playgroud)
我不知道正确的语法,有人可以帮助我吗?我试过这个,但XCode告诉我"Selector元素类型CGPoint不是一个有效的对象":
CGPoint point = [CGPoint alloc];
for (point in items) {
[self someMethod:point];
}
Run Code Online (Sandbox Code Playgroud) 所以我想知道当我这样做会发生什么
NSMutableArray *arr1 = [[NSMutableArray alloc] init];
NSMutableArray *arr2 = [[NSMutableArray alloc] init];
[arr1 addobject:ob1];
arr2 = arr1;
[self changeValue:[arr2 objectAtIndex:2]]; //function that will modify what is sent to it
Run Code Online (Sandbox Code Playgroud)
1)我甚至可以在nsmutablearrays之间进行操作吗?
2)如果我要访问arr1中的对象,是否会被修改?
3)它有多深? - 如果我要从其他地方访问该对象,是否会被修改?
4)我假设使用mutableCopy将返回一个全新的数组.
5)无论如何都要模拟这种深层连接/连接?例如,如果我想将同一个对象分配给2个不同的数组,那么如果我修改了一个,那么它会改变两个数组中的那个对象吗?
6)这个词代表什么?我不认为它是连接/连接.
非常感谢
- 詹姆斯
我有一个简单的NSArray,包含NSNumbers.
我以这种方式按升序对数组进行排序:
NSSortDescriptor *lowestToHighest = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES];
[_scores sortUsingDescriptors:[NSArray arrayWithObject:lowestToHighest]];
Run Code Online (Sandbox Code Playgroud)
我的问题是,我希望NSNumbers包含0在最后而不是在开头.这是我可能要排序的数组(包含一些空的NSNumbers仅用于示例):
0
25
12
0
8
0
Run Code Online (Sandbox Code Playgroud)
我的代码当然按如下方式对数组进行排序:
0
0
0
8
12
25
Run Code Online (Sandbox Code Playgroud)
我想要的是这个:
8
12
25
0
0
0
Run Code Online (Sandbox Code Playgroud)
当然我可以通过删除行0并在最后添加它们来手动重新订购它,但我正在寻找最干净的解决方案.
我是一个新的iOS开发人员; 我有一个解析和动态单元格的应用程序,但当我运行应用程序时,我发现应用程序崩溃,因为标题上的原因我的代码如下
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
myArray = [[NSMutableArray alloc] init];
//create new view if no view is available for recycling
// view = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 250.0f, 300.0f)] autorelease];
FXImageView *imageView = [[[FXImageView alloc] initWithFrame:CGRectMake(0, 0, 250.0f, 350.0f)] autorelease];
imageView.contentMode = UIViewContentModeScaleAspectFit;
imageView.asynchronous = YES;
// imageView.reflectionScale = 0.5f;
// imageView.reflectionAlpha = 0.25f;
// imageView.reflectionGap = 10.0f;
imageView.shadowOffset = CGSizeMake(0.0f, 2.0f);
imageView.shadowBlur = 5.0f;
imageView.cornerRadius = 10.0f;
view = imageView;
[ProgressHUD dismiss];
NSString *string1 …Run Code Online (Sandbox Code Playgroud) UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
NSArray *arrayViewControllers = (NSArray *)splitViewController.viewControllers;
ViewController *masterViewController = (ViewController *) arrayViewControllers[firstObject];
VideoViewController *detailVideoViewController = (VideoViewController *) arrayViewControllers[lastObject];
Run Code Online (Sandbox Code Playgroud)
错误:*使用未声明的标识符'firstObject'
错误:*使用未声明的标识符'lastObject'
什么?
nsarray ×10
objective-c ×8
ios ×5
iphone ×3
compare ×1
comparison ×1
icarousel ×1
ios4 ×1
ios5 ×1
refactoring ×1
sorting ×1
xcode ×1