我是stackoverflow的新人:)但我认为,这是问我问题的正确位置.我是Cocoa和Objective-c的新开发人员,我正在尝试编写我的第一个Mac应用程序:ToDo应用程序.
此时,我可以保存ToDo并删除它们,但现在,我想添加一些功能,如CreationDate,一些标签(在mutablearray中),以及ToDo是否完成.我没有使用ArrayController,我将编码的NSMutableArray保存到文件(库/应用程序支持/ AppName)并从那里读取它.
这一切都必须在一行,因为它看起来像这样:
目前的外观http://img683.imageshack.us/img683/7595/bild2ss.png
其中Title应该是ToDo的内容,Blue Box应该是Status(Blue = undone,Gray = Done),Subtitle应该是Date和Tags(03.01.2009 - tag1,tag2) ,tag3)
我现在如何将addObjects添加到mutablearray中,但是,如果我想将所有这4个信息保存到这个数组中,我不知道如何制作它.
我有一个模型,正在初始化这4个信息,但如何保存?我必须在一个数组和我的mutablearray中的数组中保存这个信息吗?
我是iPhone开发的新手,我有这个内存泄漏.
我使用NSMutableArray来检索位于Documents目录中的.plist文件的内容.
我第一次使用它,一切都很顺利,但如果我多次调用它,我会得到内存泄漏.
这是我的代码:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
//make a file name to write the data to using the
//documents directory:
fullFileName = [NSString stringWithFormat:@"%@/SavedArray", documentsDirectory];
//retrieve your array by using initWithContentsOfFile while passing
//the name of the file where you saved the array contents.
savedArray = nil;
savedArray = [[NSMutableArray alloc] initWithContentsOfFile:fullFileName];
self.composedArray = [savedArray copy];
[savedArray release];
[self.tableView reloadData];
}
Run Code Online (Sandbox Code Playgroud)
每次视图消失时我都会释放它
- (void)viewWillDisappear:(BOOL)animated {
[super …Run Code Online (Sandbox Code Playgroud) 我有2个阵列.一个是600个对象的大型静态组,另一个是10个对象的小组.
我想在两个组之间采用任何常见对象并将它们放在一个新数组中.
因此,假设大组包含600个名为1到600的对象.较小的组包含9个对象:1,2,3,4,5,6,a,b,c.我希望能够创建一个包含对象1,2,3,4,5,6的新数组.
做这个的最好方式是什么?
我有一个我在A类中使用的NSMutableArray的堆栈类别
@implementation NSMutableArray (StackUtil)
- (void)push:(id)stackObject {
[self addObject:stackObject];
}
- (id)pop {
id retVal = [[self lastObject]retain];
[self removeLastObject];
return [retVal autorelease];
}
@end
Run Code Online (Sandbox Code Playgroud)
如何正确地将此类别包含在与A类无关的B类中?此外,我注意到,当我#IMPORT A级到C级方法的工作类别的头,但我得到了"对象可能不响应Push消息"警告.可能有人清理如何类别"重用",为什么他们的名字(StackUtil在这种情况下),以及如何使用它们.
我无法将addObject添加到'easyQArray'(NSMutableArray)中.当我在本地定义数组时它确实有效,但是当我将声明移动到.h文件中时它不再起作用了.
当我尝试访问不存在的数组中的索引时,应用程序崩溃了:
// Create question arrays
if (easyPlayers > 0) {
for (int XX = 0; XX < easyQuestions; XX++) {
[easyQArray addObject: [myArray objectAtIndex: easyQStartPos]];
NSLog(@"myArray: %@", [myArray objectAtIndex: easyQStartPos]);
NSLog(@"easyQArray: %@", easyQArray);
easyQStartPos = easyQStartPos + 1;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
2010-12-28 15:52:57.636 XX_v2 [11582:207] myArray:205
2010-12-28 15:52:57.636 XX_v2 [11582:207] easyQArray :( null)
2010-12-28 15:52:57.636 XX_v2 [11582:207] myArray:71
2010-12-28 15:52:57.637 XX_v2 [11582:207] easyQArray :( null)
2010-12-28 15:52:57.637 XX_v2 [11582:207] myArray:94
2010 -12-28 15:52:57.638 XX_v2 [11582:207] easyQArray :( null)
2010-12-28 …
我正在寻找一种方法来比较两个NSMutableArray对象的内容.两个数组都填充了NSMutableDictionaries,它们是单独分配的,但偶尔也包含相同的数据.
简化示例:
NSMutableArray *firstArray = [[NSMutableArray alloc] init];
NSMutableArray *secondArray = [[NSMutableArray alloc] init];
NSMutableDictionary *a = [[NSDictionary alloc] init];
[a setObject:@"foo" forKey:"name"];
[a setObject:[NSNumber numberWithInt:1] forKey:"number"];
NSMutableDictionary *b = [[NSDictionary alloc] init];
[b setObject:@"bar" forKey:"name"];
[b setObject:[NSNumber numberWithInt:2] forKey:"number"];
NSMutableDictionary *c = [[NSDictionary alloc] init];
[c setObject:@"foo" forKey:"name"];
[c setObject:[NSNumber numberWithInt:1] forKey:"number"];
[firstArray addObject:a];
[firstArray addObject:b];
[secondArray addObject:c];
Run Code Online (Sandbox Code Playgroud)
a,b和c是不同的对象,但a和c的内容是匹配的.
我正在寻找的是比较firstArray和secondArray并仅返回b的函数/方法.
在伪代码中:
NSArray *difference = [self magicFunctionWithArray:firstArray andArray:secondArray];
NSLog(@"%@",difference)
=> ({name="bar"; number=2})
Run Code Online (Sandbox Code Playgroud)
先感谢您.
我有一个像这样定义的对象:Scores.h:
@interface Scores : NSObject {
NSString *sentenceKey;
NSMutableArray *scorrectAnswers;
}
@property (nonatomic, copy) NSString *sentenceKey;
@property (nonatomic, copy) NSMutableArray *scorrectAnswers;
+ (id)addScore:(NSString *)senKey;
- (id)initWithSentenceKey:(NSString *)sKey
scorrectAnswers:(NSMutableArray *)scorrectAs;
- (id)initWithSentenceKey:(NSString *)sKey;
- (void)removeArrayObjects;
Run Code Online (Sandbox Code Playgroud)
Score.m:
#import "Scores.h"
@implementation Scores
@synthesize sentenceKey, scorrectAnswers;
+ (id)addScore:(NSString *)senKey
{
Scores *newScore = [[self alloc] initWithSentenceKey:senKey
scorrectAnswers:[NSMutableArray new]];
return [newScore autorelease];}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用此方法删除可变数组上的AllObjects:
- (void)removeArrayObjects;{
[scorrectAnswers removeAllObjects];}
Run Code Online (Sandbox Code Playgroud)
...我从另一个程序中调用这样的:
for (Scores *sScore in scores)
{
[sScore removeArrayObjects];
}
Run Code Online (Sandbox Code Playgroud)
...当我运行它时,我收到此错误:
- [__ NSArrayI removeAllObjects]:无法识别的选择器发送到实例0x53412d0
谁能告诉我这里我做错了什么?谢谢.
NSLog(@"Ci sono %d categorie",category.count);
for(int c=0; c<category.count; c++){
CategoryArray * element =[category objectAtIndex:c];
NSLog(@"******************************");
NSLog(@"Titolo %@",element.label);
NSLog(@"Source %@",element.url);
NSLog(@"******************************");
[element release];
Run Code Online (Sandbox Code Playgroud)
这是我的代码!我需要删除所有重复数组...我使用此代码,但我不明白为什么它不起作用.
uniquearray = [[NSSet setWithArray:category] allObjects];
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) 这是返回错误的原因:
NSMutableArray *newArray = [[[NSMutableArray alloc] initWithArray:[NSJSONSerialization JSONObjectWithData:[[[appDelegate.Matches objectAtIndex:(NSUInteger)indexPath] objectForKey:@"chat"] dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:nil]] addObject:[NSDictionary dictionaryWithObjectsAndKeys:message, @"message", [NSString stringWithFormat:@"%llu", appDelegate.userId], @"id", nil]];
Run Code Online (Sandbox Code Playgroud) nsmutablearray ×10
objective-c ×6
iphone ×5
nsarray ×4
cocoa ×3
compare ×1
macos ×1
memory ×1
memory-leaks ×1
nsdictionary ×1
nstableview ×1
sorting ×1