我这样做:
for(int i=0;i>count;i++)
{
NSArray *temp=[[NSArray alloc]initWIthObjects]i,nil];
NSLog(@"%i",temp);
}
Run Code Online (Sandbox Code Playgroud)
它返回给我0,1,2,3 ....逐个计数,但我想要一个附加这些值{0,1,2,3,4,5 ...}的数组.这不是什么大问题,但我找不到它.我是iPhone新手.
我有一个关于排序的问题NSMutableArray.我可以使用sortedArrayUsingDescriptors:方法用对象对数组进行排序.
比如我有一个NSMutableArray的places,我有一个属性frequency(int值),我想降序排序上frequency,但我不知道如何正确使用它.
我把什么作为钥匙initWithKey?
我的对象place包含:
NSString * name;
NSString * address;
NSString * frequency;
NSString * type;
Run Code Online (Sandbox Code Playgroud)
NSMutableArray * places;
... populate array with objects ...
NSSortDescriptor * sortByFrequency =
[[[NSSortDescriptor alloc] initWithKey:@"????????" ascending:NO] autorelease];
NSArray * descriptors = [NSArray arrayWithObject:sortByFrequency];
NSArray * sorted = [x sortedArrayUsingDescriptors:descriptors];
Run Code Online (Sandbox Code Playgroud) 如何通过访问其NSDate属性对对象数组进行排序?
我知道可以[mutableArray sortUsingSelector:@selector(compare:)];在一个日期数组上使用,但是如何通过访问数组中每个元素的NSDate属性,按最早的日期到最新日期对对象进行排序?
我有一个名为randomSelection的NSMutableArray:
NSMutableArray *randomSelection;
Run Code Online (Sandbox Code Playgroud)
然后,如果满足某些条件,我会尝试向此数组添加字符串:
[randomSelection addObject:@"string1"];
Run Code Online (Sandbox Code Playgroud)
然后我尝试输出字符串,以确定它是否已添加它:
NSString *test = [randomSelection objectAtIndex:0];
NSLog(test);
Run Code Online (Sandbox Code Playgroud)
但是没有输出到错误日志,我无法弄清楚原因.
任何帮助/提示赞赏.
有没有人建议如何在指定容量时最好地初始化NSMutableArray?该文档提到"......即使您在创建数组时指定了大小,指定的大小也被视为"提示";数组的实际大小仍为0." 所以...
1)如果我的初始容量比我通常使用的容量大,那么我是否不必担心内存浪费?
2)如果我的初始容量通常低于我使用的容量,我是否必须担心更重的处理时间分配更多的内存来容纳额外的元素?
这个初始化容量对这种数据类型的性能/内存使用有多大影响?
我很难将数据结构添加到数组中以从循环中创建字典数组.我只知道NSMutableArray中的addObject只添加指向它的指针.我想知道如何实现我的目标.
这是我的代码:
NSMutableDictionary *woRows = [[NSMutableDictionary alloc] init];
NSMutableArray *workOrders = [[NSMutableArray alloc] init];
while ([theScanner isAtEnd] == NO)
{
if ([theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol1] &&
[theScanner scanString:@"{US}" intoString:NULL] &&
[theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol2] &&
[theScanner scanString:@"{US}" intoString:NULL] &&
[theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol3]&&
[theScanner scanString:@"{RS}" intoString:NULL])
{
[woRows setValue:tempCol1 forKey:@"hours"];
[woRows setValue:tempCol2 forKey:@"colMain"];
[woRows setValue:tempCol3 forKey:@"colAddtl"];
[workOrders addObject:woRows];
[woRows release];
}
}
[tmpString release];
[jobs addObject:workOrders];
[workOrders release];
Run Code Online (Sandbox Code Playgroud)
从上面的代码中,数组workOrders将只添加最后一个对象的副本.我坚持到这里无法进展以显示正确的数据.
任何帮助将不胜感激.
谢谢
我试过这样做:Values = [[NSSet setWithArray:Values] allObjects];没有成功,
谢谢
如何检查是否NSMutableArray为空?
我犯了一个错误,同时创造一个TableView中class,并且意外地保持我@property的copy,当我定义它:
@property (copy, nonatomic) NSMutableArray *words;
Run Code Online (Sandbox Code Playgroud)
我正确地初始化了数组:(注意这是第三次尝试,所以请忽略我不使用mutableCopy和其他更好的方法这样做的事实)
NSArray *fixedWords = @[@"Eeny", @"Meeny", @"Miny", @"Moe", @"Catch", @"A", @"Tiger", @"By", @"His", @"Toe"];
NSMutableArray *mutWords = [[NSMutableArray alloc] initWithArray:fixedWords];
self.words = mutWords;
Run Code Online (Sandbox Code Playgroud)
但是当我后来重新排序数组时,它在removeObjectAtIndex行崩溃:
id object = [self.words objectAtIndex:fromIndexPath.row];
NSUInteger from = fromIndexPath.row;
NSUInteger to = toIndexPath.row;
[self.words removeObjectAtIndex:from];
Run Code Online (Sandbox Code Playgroud)
带有错误消息
unrecognized selector sent to instance
Run Code Online (Sandbox Code Playgroud)
进行了大量的挖掘,以确定这是因为复制意味着分配NSMutableArray会导致创建标准(不可变)NSArray.任何人都可以解释为什么这是正确的行为?
我想按字母顺序对NSMutableArray进行排序.
nsmutablearray ×10
objective-c ×8
iphone ×4
cocoa ×2
nsarray ×2
sorting ×2
capacity ×1
ios ×1
nsdate ×1
performance ×1