我有以下代码:
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.我希望它很简单,但我的理解中有一个漏洞.
那可能吗?我没见过会产生普通老C矢量或数组的方法.我在我的数组中只有NSNumber对象,我需要它作为C向量或数组.
如果我有几个充满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) 我迫切需要对阵列进行排序:继承人的情况,
我需要根据另一个数组中的其他对象类重新排序/排序和替换数组.
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) 我有一个属性列表,我读入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'.
所以我正在创建一个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)
只是为了让您知道密钥名称将被更改,这仅用于测试/示例如何执行此操作.
任何帮助将不胜感激.
我基于字典键创建了一个数组:
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) 我正在看一个教程,我不确定代码行的含义:
self.objectsToShare = @[URL];
Run Code Online (Sandbox Code Playgroud)
URL是一个NSURL,self.objectsToShare是一个NSArray.
我正在尝试将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
你们中的任何人都知道如何实现这个?
我真的很感谢你的帮助.
我NSMutableArray喜欢这样:
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"0",@"0",@"0",@"0",@"0", nil];
Run Code Online (Sandbox Code Playgroud)
现在我想检查我的数组中的所有对象是否相同,等于0做某些工作!!! 但我不知道这个.请指导我.
nsarray ×10
objective-c ×8
ios ×5
nsdictionary ×3
iphone ×2
arrays ×1
c ×1
sorting ×1
vector ×1
xcode5 ×1