标签: nsmutablearray

如何通过其类的成员(即int或float)对NSMutableArray对象进行排序

我有一个类(from NSObject)包含:

NSString name
int      position
float    speed
Run Code Online (Sandbox Code Playgroud)

然后我NSMutableArray从这个类创建一个对象的数组().我想通过'speed'值对数组进行排序,这是一个float.

我最初的float值是as NSNumber和intas NSInteger,并且我成功排序:

[myMutableArray sortUsingFunction:compareSelector context:@selector(position)];
Run Code Online (Sandbox Code Playgroud)

myMutableArray我的对象数组在哪里.

这是功能:

static int compareSelector(id p1, id p2, void *context) {
    SEL methodSelector = (SEL)context;
    id value1 = [p1 performSelector:methodSelector];
    id value2 = [p2 performSelector:methodSelector];
    return [value1 compare:value2];
}
Run Code Online (Sandbox Code Playgroud)

现在我正在使用int而不是NSInteger,上面的代码不起作用.是否有一个更低级的命令,我应该用它来执行排序?谢谢!

sorting objective-c nsmutablearray

4
推荐指数
1
解决办法
3167
查看次数

如何在objective-c中正确地像Finder一样对文件名进行排序

我绑定NStableView与NSMutableArray contiaining文件名和其他文件的详细信息.使用compare进行简单的biniding和排序:没有像finder那样正确地对文件名进行排序.如果我需要定义用于排序文件名的自定义选择器以及如何定义,请告诉我?

sorting binding objective-c nstableview nsmutablearray

4
推荐指数
1
解决办法
1106
查看次数

如何将对象添加到NSMutableArray的末尾

我有以下代码

NSMutableArray *plistArray = [[NSMutableArray alloc] initWithContentsOfFile:filepath];
[plistArray insertObject:title atIndex:2];
Run Code Online (Sandbox Code Playgroud)

但是我想将对象添加到数组的末尾.

如何才能做到这一点,做我需要设置的最后一个值为零,在我不的那一刻,它工作正常.

问候

iphone nsmutablearray

4
推荐指数
1
解决办法
9875
查看次数

NSMutableArray如何正确添加对象和释放

我担心的是我正确添加对象并释放它们.

  1. NSMutableArray实际包含什么 - 对象的副本或只是指向它们的指针?
  2. 使用NSMutableArray的顺序是什么?(alloc,init,work,release)
  3. 如何正确保留和释放?

    NSMutableArray *listData = [[NSMutableArray alloc] init];
    int i = 0;
    for (i = 0; i < 3; i++)
    {
        MyData *obj = [[MyData alloc] init];
        NSString *name = nil;
        switch (i)
        {
            case 0:
                name = @"Semen";
                break;
            case 1:
                name = @"Ivan";
                break;              
            case 2:
                name = @"Stepan";
                break;              
            default:
                break;
        }       
        obj.name = name;
        [listData addObject: obj];
        [obj release];
     }
     [listData release]  //in dealloc method
    
    Run Code Online (Sandbox Code Playgroud)

或者我需要首先释放所有包含的对象,而不是在NSMutableArray对象上释放?

谢谢!

iphone objective-c nsmutablearray ios4

4
推荐指数
1
解决办法
7417
查看次数

NSMutableArray - 数组弹出等效项

如果我想从我的手中弹出最后一项,NSMutableArray那么这是最合适的方式吗?

id theObject = [myMutableArray objectAtIndex:myMutableArray.count-1];
[myMutableArray removeLastObject];
Run Code Online (Sandbox Code Playgroud)

我相信来自SOF的人有更好的方法.

cocoa foundation nsmutablearray

4
推荐指数
2
解决办法
6126
查看次数

NSMutableArray和副本

我有3 NSMutableArrays:a,b,c.

a= [b copy];
a= [c copy];
Run Code Online (Sandbox Code Playgroud)

首次复制的元素(来自b)会发生什么?

在我的use -case中,a是我用作tableview的DataSource的数组,而b,c是在需要时取代数据源的数组.谢谢

具体例子.最后我开始使用setArray.

-(IBAction)selectTab:(id)sender {
    if ([(UIButton*)sender tag] == 1000) {
        if (![self.butonLocuri isSelected]) {

            [tableDataSourceArray setArray:locuriArray];
            [self addPins:self.tableDataSourceArray];
            [self.myTableView reloadData];
        }
    }

    if ([(UIButton*)sender tag] == 2000) {

        if(![self.butonEvenimente isSelected]){

            [tableDataSourceArray setArray:evenimenteArray];
            [self addPins:self.tableDataSourceArray];
            [self.myTableView reloadData];


        }


    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c uitableview nsmutablearray ios

4
推荐指数
1
解决办法
417
查看次数

可变副本通过引用复制,而不是值?

显然mutableCopy通过引用复制,而不是值.即如果我这样做:

NSMutableArray arrayA = [arrayB mutableCopy];
Run Code Online (Sandbox Code Playgroud)

然后更改arrayB的值,然后也会更改arrayA的值.

我认为Java有一个clone()方法来按值复制..在目标c中是否存在等价物?

objective-c nsmutablearray

4
推荐指数
1
解决办法
1153
查看次数

[__NSArrayI replaceObjectAtIndex:withObject:]:发送到实例的无法识别的选择器

我有一个NSMutableArray,我需要机会它的值,但我有这个错误:
[__ NSArrayI replaceObjectAtIndex:withObject:]:无法识别的选择器发送到实例0x5291db0
这是我的NSMutableArray的声明:

NSMutableArray *selectedOptions = [NSArray arrayWithObjects:[NSNumber numberWithInteger:0], nil]; 
Run Code Online (Sandbox Code Playgroud)

然后,我正在使用replaceObjectAtIndex方法,这样:

[self.selectedOptions replaceObjectAtIndex:0 withObject:[NSNumber numberWithInteger:1]];
Run Code Online (Sandbox Code Playgroud)

但我知道,那个错误,我正在使用NSMutableArray.
谢谢

cocoa objective-c nsmutablearray

4
推荐指数
2
解决办法
5788
查看次数

除了NSMutableArray IOS中的第一个索引之外,如何删除所有索引处的对象

我有1个mutablearray,我想删除对象的所有索引,但在第一个索引处保持对象.示例:输入:数组(a,b,c,d,e)输出:数组(a)

你能帮助我吗.提前致谢

objective-c nsmutablearray ios

4
推荐指数
1
解决办法
6577
查看次数

writeToFile不使用NSDictionary

我环顾了其他类似的问题,但没有真正有效.

我设法在我的Plist上只写了一对字典对(对象/键)(例如:setObject:itemProperties [0] forKey [0]).但我希望添加所有的对象和密钥.到目前为止我没有管理(返回错误).有帮助吗?

 // Path to Documents Folder

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"items.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];

if (![fileManager fileExistsAtPath: path])
{
    path = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat: @"items.plist"] ];
}

NSMutableDictionary *items;

if ([fileManager fileExistsAtPath: path])
{
    items = [[NSMutableDictionary alloc] initWithContentsOfFile: path];
}
else
{
    // If the file doesn’t exist, create an empty dictionary
    items = [[NSMutableDictionary alloc] initWithCapacity:5];
}

// array of …
Run Code Online (Sandbox Code Playgroud)

nsdictionary plist nsmutablearray ios

4
推荐指数
2
解决办法
1万
查看次数