标签: nsarray

围绕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
查看次数

如何从NSArray制作C矢量或数组?

那可能吗?我没见过会产生普通老C矢量或数组的方法.我在我的数组中只有NSNumber对象,我需要它作为C向量或数组.

c arrays vector objective-c nsarray

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

从两个数组中获取唯一数字

如果我有几个充满int的NSArray,或NSNumbers,如下:

A: { 12, 23, 45, 56, 67, 78, 99, 234 }
B: { 12, 56, 78, 99, 454, 512 }
Run Code Online (Sandbox Code Playgroud)

如何输出数字在A但不在B中的数组,如

{ 23, 45, 67, 234 }
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsarray ios

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

基于具有自定义类的其他Array对NSArray进行排序

我迫切需要对阵列进行排序:继承人的情况,

我需要根据另一个数组中的其他对象类重新排序/排序和替换数组.

ParentClass :NSObject{
  NSString *name;
  NSNumber *type;
}
Run Code Online (Sandbox Code Playgroud)

这是父类,它填满了parentArray

parentArray = { parentA, parentB, parentC }
Run Code Online (Sandbox Code Playgroud)

这是另一个对象类,它有ParentClass*parent.

@class ParentClass;

EntryClass: NSObject{
 NSString *name;
 NSNumber *number;
 ParentClass *parent;
}



Now I have an array entryArray = { entryX, entryY, entryZ };

entryX.parent is one of the ParentClasses and all of them are in parentArray.

entryX.parent  == ParentC;
entryY.parent  == ParentA;
entryZ.parent  == ParentB;
Run Code Online (Sandbox Code Playgroud)

我想根据parentArray中的顺序对这个entryArray进行排序.所以如果ParentArray是:

{
 ParentA,
 ParentB,
 ParentC
}
Run Code Online (Sandbox Code Playgroud)

然后我想要排序的entryArray

{
 entryY,
 entryZ,
 entryX
}
Run Code Online (Sandbox Code Playgroud)

此外,如果缺少一个条目Object,则为entryZ,那么数组应该是

{
 entryY,
 @"0.0",
 entryX …
Run Code Online (Sandbox Code Playgroud)

sorting objective-c nsmutablearray nsarray

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

NSDictionary的深度可变副本到NSMutableDictionary中

我有一个属性列表,我读入NSDictionary,我想从中创建一个可变副本到NSMutableDictionary来编辑内容,然后能够通过复制原始内容来重置可变字典.

NSDictionary *defaultRows;
NSMutableDictionary *rows;

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Config" ofType:@"plist"];
defaultRows = [[[NSDictionary alloc] initWithContentsOfFile: plistPath] objectForKey:@"rows"];
Run Code Online (Sandbox Code Playgroud)

这就是我尝试创建原始字典的副本(根据Apple的建议):

rows = [NSMutableDictionary dictionaryWithDictionary: defaultRows];
Run Code Online (Sandbox Code Playgroud)

当我尝试用以下内容更改字典行的内容时:

[[[rows objectForKey:self.company.coaTypeCode] objectForKey:statementType] removeObjectsAtIndexes:rowsToDelete];

我收到运行时错误*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object'.

我在这里阅读了这篇文章,但想知道是否有更优雅的方法来实现深层拷贝?

objective-c nsdictionary nsarray ios

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

NSDictionary添加NULL键值

所以我正在创建一个NSDictionary,它正在提供要使用的方法数据,但是key数组中的一些键值并不总是用值填充..假设我有18个键(我这样做)..我可能只在一次通话中使用5,但在我的代码中的某些位置使用6或在所有18中使用.

我想知道的是如何将NULL值添加到这些键中,以便稍后当我查看键值对时,我可以看到我需要担心的哪些键以及哪些键可以忘记?所以问题是,如果我想在键中添加/ null,我该如何做而不会导致错误或认为它的数组结束为零.

这就是我目前所拥有的,但是当我尝试阅读NSDicionary时,它会给我一个错误的exe错误

NSDictionary*sendSeriesDictionary = [[NSDictionary alloc] init];

NSArray *keys = [NSArray arrayWithObjects:@"Code", @"MaID", @"MoID", @"SuID",@"SMID",@"Ye",@"KID",@"KBlID",@"KBk",@"CaID",@"Caer",@"Loe",@"Kepe",@"KTGroup",@"Cesc",@"LID",@"IN",@"LaID", nil];


NSArray *objects = [NSArray arrayWithObjects: NULL, manufactureIdString, modelIdString, subModelIdString, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, nil];

sendSeriesDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
Run Code Online (Sandbox Code Playgroud)

只是为了让您知道密钥名称将被更改,这仅用于测试/示例如何执行此操作.

任何帮助将不胜感激.

iphone nsdictionary nsarray ios

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

insertObject:atIndex: - 索引3超出空数组的边界

我基于字典键创建了一个数组:

factsBuiltArray = [NSMutableArray arrayWithCapacity: 6];
if ([statusDict count] == 10) {
    for (NSString *key in [statusDict allKeys]) {
        if ([key isEqualToString: @"currenciesAndConversions"]) {
            [factsBuiltArray insertObject:key atIndex: 0];
        }
        else if ([key isEqualToString: @"languageAndTranslations"]) {
            [factsBuiltArray insertObject:key atIndex: 1];
        }
        else if ([key isEqualToString: @"plugSize"]) {
            [factsBuiltArray insertObject:key atIndex: 2];
        }
        else  if ([key isEqualToString: @"timezone"]) {
            [factsBuiltArray insertObject:key atIndex: 3]; // crashes over here
        }
        else if ([key isEqualToString: @"population"]) {
            [factsBuiltArray insertObject:key atIndex: 4];
        }
        else if ([key …
Run Code Online (Sandbox Code Playgroud)

objective-c nsdictionary nsmutablearray nsarray ios

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

这是什么意思?

我正在看一个教程,我不确定代码行的含义:

self.objectsToShare = @[URL];
Run Code Online (Sandbox Code Playgroud)

URL是一个NSURL,self.objectsToShare是一个NSArray.

objective-c nsarray objective-c-literals

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

将NSArray的内容保存为纯文本文件而不是xml

我正在尝试将NSArray的内容保存为纯文本文件.这是我如何保存数组的内容:

[myArrayContent writeToFile:filePath atomically:YES];
Run Code Online (Sandbox Code Playgroud)

但是被保存为xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <string>lineOne</string>
    <string>lineTwo</string>
</array>
</plist>
Run Code Online (Sandbox Code Playgroud)

我的问题是你如何将内容保存为纯文本:

lineOne lineTwo

你们中的任何人都知道如何实现这个?

我真的很感谢你的帮助.

objective-c nsarray ios xcode5

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

如何在NSMutableArray中检查所有对象的相同值

我NSMutableArray喜欢这样:

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"0",@"0",@"0",@"0",@"0", nil];
Run Code Online (Sandbox Code Playgroud)

现在我想检查我的数组中的所有对象是否相同,等于0做某些工作!!! 但我不知道这个.请指导我.

nsmutablearray nsarray

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