标签: nsarray

NSArrays中的NSArrays.一个指针问题?

我相信我的问题涉及指针,这是我经常讨论的一个概念,但这就是我想要做的事情.

我有六个NSArrays.我想要一个由这六个数组组成的额外NSArray,所以:

self.arr1 = [NSArray array];
self.arr2 = [NSArray array];
self.arr3 = [NSArray array];
self.arr4 = [NSArray array];
self.arr5 = [NSArray array];
self.arr6 = [NSArray array];

NSArray *containerArray = [[NSArray alloc] initWithObjects:self.arr1, ... etc, nil];
Run Code Online (Sandbox Code Playgroud)

每当我更新前6个NSArray中的一个时,我希望在containerArray中更新对象.(我知道我使用的是NSArray而不是NSMutableArray,当我更新数组时,我创建了一个新数组并将其分配给实例变量).

目前,对arr1的任何操作都不会反映在[containerArray objectAtIndex:0]中.

cocoa pointers nsarray

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

containsObject - 为什么这不起作用?

我有一个数组,我试图检查是否存在indexPath(.row).

我用这个代码:

if ([array containsObject:[NSNumber numberWithInt:indexPath.row]]){
    NSLog(@"Yep, it exists in there.");
}
Run Code Online (Sandbox Code Playgroud)

数组由数字3,8和2组成.索引路径在循环中加载从0到8的数字.

任何人都可以看到为什么这样做不起作用?

iphone nsnumber nsarray nsindexpath

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

addObjectsFromArray与mutableCopy

我有以下代码:

    self.itemsCopy = [self.items mutableCopy];
    //[self.itemsCopy addObjectsFromArray:self.items];

    NSLog(@"------- BEFORE APPEND --------");
    NSLog(@"items count: %d",[items count]);
    NSLog(@"itemsCopy count: %d",[itemsCopy count]);
Run Code Online (Sandbox Code Playgroud)

我的结果是:

 ------- BEFORE APPEND --------
 items count: 15
 itemsCopy count: 15
Run Code Online (Sandbox Code Playgroud)

但是,如果我将第一行从mutableCopy更改为addObjectsFromArray:

[self.itemsCopy addObjectsFromArray:self.items];
Run Code Online (Sandbox Code Playgroud)

我的新结果是:

 ------- BEFORE APPEND --------
 items count: 15
 itemsCopy count: 0
Run Code Online (Sandbox Code Playgroud)

为什么mutableCopy会填充itemsCopy,但是addObjectsFromArray却没有?

arrays cocoa cocoa-touch objective-c nsarray

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

如何在Objective-C(Cocoa)中正确创建充满NSNumbers的静态NSArrays?

为什么在下面的代码中,我不能简单地创建一个NSNumbers的静态数组?我只会使用C数组和整数,但那些无法复制,正如你在init()中看到的那样,我必须将数组复制到另一个数组.我收到的错误是"初始化元素不是常数".这很混乱; 考虑到我没有任何地方的const关键字,我甚至不确定这意味着什么.

另外,作为旁注,getNextIngredient方法给出了错误"不能将对象用作方法的参数"和"返回不兼容的类型",但我不知道为什么.

这是代码:

// 1 = TOMATO
// 2 = LETTUCE
// 3 = CHEESE
// 4 = HAM

#import "Recipe.h"




@implementation Recipe

// List of hardcoded recipes
static NSArray *basicHam = [[NSArray alloc] initWithObjects:[[NSNumber alloc] numberwithInt:1], [[NSNumber alloc] numberwithInt:2], [[NSNumber alloc] numberWithInt:3], [[NSNumber alloc] numberwithInt:4]];

// Upon creation, check the name parameter that was passed in and set the current recipe to that particular array.
// Then, set nextIngredient to be the first ingredient of that recipe, so …
Run Code Online (Sandbox Code Playgroud)

objective-c nsnumber nsarray

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

插入字典后,NSArray变成了NSCFArray

我正在尝试将NSArray保存为NSMutableDictionary中的值.当我尝试获取我添加的内容时,它返回NSFCArray而不是NSArray:

NSArray * list = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
NSMutableDictionary * dictionary = [[NSMutableDictionary alloc] init];
for (NSString *name in list) {
    // first attempt
    [dictionary setObject:[NSMutableArray arrayWithObject:@"test"] forKey:name];
    NSLog(@"first attempt class: %@", [[dictionary valueForKey:name] class]);
    // second attempt
    NSArray * realArray = [[NSArray alloc] initWithArray:[dictionary valueForKey:name]];
    NSLog(@"second attempt class: %@", [realArray class]);
}
Run Code Online (Sandbox Code Playgroud)

我认为这是为了提高效率.但是,我需要将我的值作为NSArray返回,以调用NSFCArray没有的"count"方法.如果我不能将值存储在字典中作为NSArray,我如何从NSFCArray转换为NSArray?

objective-c nsdictionary nsarray nsmutabledictionary

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

NSArray NSDictionary保留了addobject顺序

NSArray的addObject方法是否保证保持顺序?因此,如果我添加一个object1然后添加object2然后打印它们,它们是否总是按顺序排列?这对于NSDictionary allValues数组也是如此吗?

cocoa nsdictionary nsarray

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

iPhone sdk:如何删除NSArray中的重复项

嗨我的NSArray包含这样的重复项(我必须删除重复项)

标题:父亲节

标题:父亲节

标题:父亲节

标题:选举日

标题:选举日

标题:选举日

标题:复活节

标题:复活节

标题:地球日

标题:地球日

标题:地球日

标题:Cinco de Mayo

标题:Cinco de Mayo

标题:Cinco de Mayo

标题:平安夜

标题:平安夜

标题:平安夜

标题:圣诞节标题:圣诞节标题:圣诞节

我只保留一个名字,不需要其他副本.我怎么做这个请指导我一点清楚解释,解决这个问题.谢谢.

iphone objective-c nsarray

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

indexOfObject第一次返回0而不是NSNotFound

我在a中有一个表UIPopoverController,viewDidAppear我检查了存储在standardUserDefaults中的单元格标签的值.(所以我可以使用最后选择的选项).

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *lastMenu = [prefs objectForKey:@"location"];

NSUInteger index = [__menuTitles indexOfObject:lastMenu];

NSLog(@"lastMenu is %@",lastMenu);
NSLog(@"lastMenu index is %i",index);
Run Code Online (Sandbox Code Playgroud)

在第一次激活菜单时生成此选项

lastMenu is 
lastMenu index is 0
Run Code Online (Sandbox Code Playgroud)

后续点击正确报告2147483647的含义 NSNotFound

lastMenu is 
lastMenu index is 2147483647
Run Code Online (Sandbox Code Playgroud)

为什么0第一次返回?

这是阵列

__menuTitles = [[NSArray alloc] initWithObjects:
                @"North America", 
                @"Western Europe", 
                @"Asia Pacific", 
                @"Latin America", 
                @"Central & Eastern Europe", 
                @"Middle East", 
                @"Africa", 
                nil];
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsarray ios

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

将临时对象添加到NSMutableArray

我有一个自定义类MDRect,我正在尝试添加NSMutableArray

数组是属性:

@property (retain) NSMutableArray* array; 
Run Code Online (Sandbox Code Playgroud)

它在NSView子类的initMethod中初始化:

-(id)init {
array =  [NSMutableArray new];
return [super init];
 }
Run Code Online (Sandbox Code Playgroud)

然后我试图在这里添加一个对象:

-(void)mouseUp:(NSEvent *)theEvent
{
NSPoint mouseLoc = [NSEvent mouseLocation];    
mouseLoc = [self mouse:mouseLoc inRect:[self frame]];

CGSize temp;
NSLog(@"%f",mouseLoc.y - mouseLocation.y);
NSLog(@"%f",mouseLoc.x - mouseLocation.x);
temp.height = mouseLoc.y - mouseLocation.y;
temp.width = mouseLoc.x - mouseLocation.x;

tempRect.size = temp;
MDRect * rect = [[MDRect alloc] initWithColor:[NSColor orangeColor] andRect:tempRect];
[array addObject:rect];    




int i =     (int)array.count;
NSLog(@"%i",i);
[self setNeedsDisplay:YES];
}
Run Code Online (Sandbox Code Playgroud)

但是没有将对象添加到数组中.它永远不会返回NSLog函数中除0以外的任何值.我究竟做错了什么?

cocoa objective-c nsarray

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

在对象数组中使用数据

我有一个名为[self.places objectAtIndex:indexPath.row]的数组; 我试图输出到表中.数组中充满了对象,但是我想使用对象内部的数据,将它们分配给对象的最佳方法是什么?数组内部的数据如下:

<Place:eXMSFqDg7B> {
    Location = "<PFGeoPoint: 0x6887480>";
    addressline1 = "address line 1";
    addressline2 = "address line 2";
    agerestrictions = "18+";
    email = "test@aol.com";
    image = "<PFFile: 0x6887af0>";
    name = "Rain NightClub";
    phone = 0123456789;
    postcode = BT11TG;
    type = Club;
}
2012-04-17 00:29:59.501 ClubsNIparse[3517:f803] <Place:95KvPCrSY1> {
    Location = "<PFGeoPoint: 0x6888330>";
    addressline1 = "address line 1";
    addressline2 = "address line 2";
    agerestrictions = "18+";
    email = "test@aol.com";
    image = "<PFFile: 0x6888950>";
    name = "Box NightClub";
    phone = 0123456789;
    postcode …
Run Code Online (Sandbox Code Playgroud)

iphone xcode objective-c nsarray ios

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