标签: nsmutablearray

围绕NSMutableArray和NSArray的困惑

我有以下代码:

NSLog(@"items: %d", [items count]);
NSLog(@"allObjects: %d", [self.allObjects count]);

[self.allObjects addObjectsFromArray:items];

NSLog(@"allObjects: %d", [self.allObjects count]);
Run Code Online (Sandbox Code Playgroud)

其中产生以下输出:

items: 7
allObjects: 0
allObjects: 0
Run Code Online (Sandbox Code Playgroud)

items是NSArray

allObjects是一个NSMutableArray.

我很困惑为什么项目中的对象没有被添加到allObjects.我希望它很简单,但我的理解中有一个漏洞.

objective-c nsmutablearray nsarray

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

将NSmutableArray保存到文件并加载

我写的应用程序为我的iPhone,我想保存一些NSmutablearray文件,并在以后加载它.我读到有关NSArchiver的信息,但我不明白如何使用我的calss:

@interface Shop : NSObject 
{    
    NSString       *m_Name;
    NSString       *m_Description;
    NSString       *m_Category;
    NSString       *m_BestSaleDesc;
    NSString       *m_AdditionalInfo;   
    NSInteger       m_ShopId;
    NSInteger       m_ChainId;
    NSMutableArray *m_SalesList;
    NSData         *m_Icon;
    bool            m_Filtered;
    bool            m_Deleted;
    bool            m_Hidden;
}
Run Code Online (Sandbox Code Playgroud)

有人可以给我一些示例代码,说明如何将calss Shop的NSmutableArray保存到文件名ShopFile.sav,然后再如何将它再次加载到NSmutableArray对象.
非常感谢

serialization objective-c nsmutablearray

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

如何在ios中定义2x2数组?

如何在ios中定义2x2或3X ..数组?像这样

[name=john , age=21 , num=1]
[name=max , age=25 , num=2]
[name=petter , age=22 , num=3]
Run Code Online (Sandbox Code Playgroud)

使用NSMutableArray中的列,您只能添加带有对象的行; 我想要这个数组[] []

cocoa-touch objective-c nsmutablearray ios

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

错误:在NSMutableArray上使用addObjects:时出现"无法识别的选择器"

执行时

[self.blockViews addObject:curBlockView];
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

2011-07-01 13:35:26.240 Block Breaker [42061:207] - [__ NSArrayI addObject:]:无法识别的选择器发送到实例0x4e037a0

我对Objective-C很新.这是我的init方法吗?

//
//  GameEngine.h
//  Block Breaker
//
//  Created by Chris Muench on 7/1/11.
//  Copyright 2011 N/A. All rights reserved.
//

#import <Foundation/Foundation.h>


@interface GameEngine : NSObject {
    NSMutableArray *blockViews;
    int numBlockRows;
    int score;
}
@property (nonatomic, copy) NSMutableArray *blockViews;
@property int numBlockRows;
@property int score;

- (void) setup;
- (void) setupBlocks;
@end


//
//  GameEngine.m
//  Block Breaker
//
//  Created by …
Run Code Online (Sandbox Code Playgroud)

properties objective-c nsmutablearray nsarray

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

如何检查NSMutableArray中的字符串是否为EquorToString X?

对不起,如果这是基本的,但我无法理解这一点.我有一个数组,想要遍历它中的每个对象,看看它是否是等于:@"某事".如果试过这个,但它会崩溃:

    for (int i = 0; i < ([myNSMutableArray count]); i++) {

    NSLog(@"i = %i", i);

    if ([[myNSMutableArray objectAtIndex:i] isEqualToString:@"something"]) {
        ...
    } else {
        ...
    }


}
Run Code Online (Sandbox Code Playgroud)

我去拿:

    2011-07-14 13:38:40.983 MNs[21416:207] i = 0
2011-07-14 13:38:40.985 MNs[21416:207] -[__NSArrayM isEqualToString:]: unrecognized selector sent to instance 0x4c976f0
2011-07-14 13:38:40.987 MNs[21416:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM isEqualToString:]: unrecognized selector sent to instance 0x4c976f0'
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感谢.提前致谢!

编辑:

对不起我忘记了.这就是我创建数组的方式:

NSMutableArray *myNSMutableArray = [[NSMutableArray alloc] init];

    for (int x = 0; …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c nsmutablearray

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

使用NSDictionary数组中的值获取Array

我有一个包含4个词典的数组,其键为@"首选项",如下所示

 (
        {
          preference = Nose;
        },

        {
          preference = "Heart rate";
        },

        {
          preference = Glucose;
        },

        {
          preference = Food;
        }
)
Run Code Online (Sandbox Code Playgroud)

现在我想检索这些字典值的数组,如"

 (
    Nose, Heart rate,  Glucose,  Food
 )
Run Code Online (Sandbox Code Playgroud)

我怎么得到它..提前谢谢

iphone objective-c nsdictionary nsmutablearray nsarray

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

NSMutableArray自动类型转换为NSArray

我创建了一个NSMutableArray对象

NSMutableArray *array = [[NSMutableArray alloc]init];
Run Code Online (Sandbox Code Playgroud)

和使用的方法componentsSeperatedByString:as

array = [myString componentsSeperatedByString:@"++"];
Run Code Online (Sandbox Code Playgroud)

但当我在阵列上执行操作时,

[array removeAllObjects];
Run Code Online (Sandbox Code Playgroud)

我得到了异常,例如"removeAllObjects无法识别的选择器发送到实例".

我通过修改代码解决了这个问题,

NSArray *components = [myString componentsSeperatedByString:@"++"];



array = [NSMutableArray arrayWithArray:components];
Run Code Online (Sandbox Code Playgroud)

我之后可以执行像这样的操作

[array removeAllObjects];
Run Code Online (Sandbox Code Playgroud)

我怀疑为什么NSMutableArray自动转换为NSArray?如何避免这样的自动类型转换,以防止异常?提前致谢....

iphone objective-c nsmutablearray

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

如何按对象的参数排序NSMutableArray

我有NSMutableArray对象Link有参数Byte taskOne.我必须通过此参数对对象进行排序.

    for (Byte i = 0; i < [linksArray count]-1; i++) {
        Link *l = [linksArray objectAtIndex:i];
        Link *lNext = [linksArray objectAtIndex:i+1];
        if (l.taskOne >= lNext.taskOne) {
            NSLog(@"%d >= %d", l.taskOne, lNext.taskOne);
            [linksArray replaceObjectAtIndex:i withObject:lNext];
            [linksArray replaceObjectAtIndex:i+1 withObject:l];
        }
    }
Run Code Online (Sandbox Code Playgroud)

这给了我错误的结果,但我不知道出了什么问题.谢谢你的帮助.

sorting objective-c nsmutablearray

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

setObject:forKey setObject:forKeyedSubscript有什么区别

有没有方法之间有什么区别setObject:forKey和setObject:forKeyedSubscript?

我正在使用Objective-C NSMutableArray.两者似乎对我的功能都一样.

objective-c nsmutablearray

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

Objective-C基于偶数/奇数索引将数组拆分为两个单独的数组

我有一个数组,NSMutableArray*stringArray看起来像这样

stringArray = 

[0]String1
[1]String2
[2]String3
[3]String4
[4]String5
[5]String6
Run Code Online (Sandbox Code Playgroud)

我如何根据偶数/奇数索引将此数组拆分为两个数组?

例:

NSMutableArray *oddArray = ([1], [3], [5]);

NSMutableArray *evenArray = ([0], [2], [4]);
Run Code Online (Sandbox Code Playgroud)

提前致谢!

arrays objective-c nsmutablearray

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