标签: nsmutablearray

如何动态填写NSArray?

我有一个for循环.在那个循环里面,我想填充NSArray一些对象.但我没有看到任何让我这样做的方法.我事先知道有多少物品.我想避免使用NSMutableArray,因为有些人告诉我这是一个非常大的开销和性能制动相比NSArray.

我有这样的事情:

NSArray *returnArray = [[NSArray alloc] init];
for (imageName in imageArray) {
    UIImage *image = [UIImage imageNamed:imageName];
    //Now, here I'd like to add that image to the array...
}
Run Code Online (Sandbox Code Playgroud)

我查看了文档NSArray,但是如何指定那里有多少元素?或者我必须真的用NSMutableArray它吗?

iphone objective-c uikit nsmutablearray nsarray

15
推荐指数
1
解决办法
4万
查看次数

在NSMutableArray中存储CLLocationCoordinates2D

经过一番搜索,我得到了以下解决方案: 参考.

CLLocationCoordinate2D* new_coordinate = malloc(sizeof(CLLocationCoordinate2D));
new_coordinate->latitude = latitude;
new_coordinate->longitude = longitude;
[points addObject:[NSData dataWithBytes:(void *)new_coordinate
length:sizeof(CLLocationCoordinate2D)]];
free(new_coordinate);
Run Code Online (Sandbox Code Playgroud)

并将其访问为:

CLLocationCoordinate2D* c = (CLLocationCoordinate2D*) [[points objectAtIndex:0] bytes];
Run Code Online (Sandbox Code Playgroud)

但是,有人声称这里有内存泄漏?任何人都可以建议我在哪里泄漏以及如何解决它.此外,是否有更好的方法在NSMutableArray中存储CLLocationCoordinate2D列表?请提供示例代码,因为我是Objective C新手.

cocoa nsmutablearray nsdata

15
推荐指数
3
解决办法
1万
查看次数

来自NSArray的NSMutableArray

我有以下代码,我想使用NSMutable数组而不是NSArray你能告诉我如何加载NSMutable数组,因为当前的方法不起作用.

-(void) whatever{
NSData *htmlData = [[NSString stringWithContentsOfURL:[NSURL URLWithString: @"http://www.objectgraph.com/contact.html"]] dataUsingEncoding:NSUTF8StringEncoding];
TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlData];
NSArray *titles  = [xpathParser search:@"//h3"]; // get the page title - this is xpath     notation
TFHppleElement *title = [titles objectAtIndex:0];
NSString *myTitles = [title content];

NSArray *articles  = [xpathParser search:@"//h4"]; // get the page article - this is xpath     notation
TFHppleElement *article = [articles objectAtIndex:0];
NSString *myArtical = [article content];
Run Code Online (Sandbox Code Playgroud)

我试过了 :

NSMutableArray *titles  = [xpathParser search:@"//h3"];
Run Code Online (Sandbox Code Playgroud)

但它确实加载了这些值?

objective-c nsmutablearray nsarray ios

15
推荐指数
3
解决办法
3万
查看次数

如何在NSMutableArray上添加观察者?

我搜索了很多,但没有找到有用的代码或教程.

在我的应用程序中,我有一个可变数组,每60秒更新一次.

数组中的对象由多个视图控制器中的表视图显示.

我只想在数组中的值更改或更新时自动重新加载表视图.

为此,我想在可变数组上添加观察者,即当数组中的值发生变化时,它应该调用特定的方法,例如

-(void)ArrayUpdatedNotification:(NSMutableArray*)array
{
    //Reload table or do something
} 
Run Code Online (Sandbox Code Playgroud)

提前致谢.

iphone objective-c uitableview nsmutablearray

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

如何将NSArray分成两个相等的部分?

我有一个NSArray,我想将它分成两个相等的部分(如果奇数"计数"然后添加到后一个新数组) - 我想把它分成"中间"可以这么说.

以下代码完全符合我的要求,但有更好的方法吗?:

// NOTE: `NSArray testableArray` is an NSArray of objects from a class defined elsewhere;
NSMutableArray *leftArray = [[NSMutableArray alloc] init];  
NSMutableArray *rightArray = [[NSMutableArray alloc] init];

for (int i=0; i < [testableArray count]; i=i+1) {
if (i < [testableArray count]/2) {
        [leftArray addObject:[testableArray objectAtIndex:i]];
    }
    else {
        [rightArray addObject:[testableArray objectAtIndex:i]];
    }
}
Run Code Online (Sandbox Code Playgroud)

一旦leftArray和rightArray被制作出来,我就不会改变它们,所以它们不需要是"可变的".我认为可能有一种方法可以使用ObjectsAtIndexes方法或一些快速枚举方法来完成上述代码?但是我无法使用以下代码(或其他变体):

NSArray *leftArray = [[NSArray alloc] initWithObjects:[testableArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(????, ????)]]];
NSArray *rightArray = [[NSArray alloc] initWithObjects:[testableArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(????, ????)]]];
Run Code Online (Sandbox Code Playgroud)

有没有人知道我是否朝着正确的方向前进或指向正确的方向?

谢谢!

objective-c nsmutablearray nsarray

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

有没有一种方法可以获得NSMutableArray的Max和Min

在iOS中有没有办法让我获得一个双数的NSMutableArray的Max和Min值.我正在寻找一个已经存在的方法,而不是我自己对数组进行排序.如果有一种方法可以让我构建API,让我对我感兴趣的数组进行排序.

谢谢

max min nsmutablearray ios

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

通过对具有匹配id号的对象进行分组来重建NSArray?

我有一个NSArray,数组中的每个对象都有一个groupId和一个名字.每个对象都是唯一的,但有许多具有相同的groupId.有没有办法可以将阵列拆开并重建它,以便将名称分组为具有相应groubId的单个对象?这是数组目前的样子:

2013-03-12 20:50:05.572 appName[4102:702] the  array:  (
        {
        groupId = 1;
        name = "Dan";
    },
        {
        groupId = 1;
        name = "Matt";
    },
        {
        groupId = 2;
        name = "Steve";
    },
        {
        groupId = 2;
        name = "Mike";
    },
        {
        groupId = 3;
        name = "John";

    },
        {
        groupId = 4;
        name = "Kevin";
    }
)
Run Code Online (Sandbox Code Playgroud)

这就是我希望它看起来像:

2013-03-12 20:50:05.572 appName[4102:702] the  array:  (
        {
        groupId = 1;
        name1 = "Dan";
        name2 = "Matt";
    },
        {
        groupId = 2;
        name1 = …
Run Code Online (Sandbox Code Playgroud)

objective-c nsmutablearray nsarray ios

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

检查NSDictionary是否为空

我想检查一下是否NSDictionary为空.我是这样做的.

  mutDictValues = [[[NSUserDefaults standardUserDefaults] objectForKey:@"dicValues"]mutableCopy];
    NSLog(@"dictValues are %@",mutDictValues);
    if(mutDictValues == NULL){
        arrCities = [[NSMutableArray alloc]init];
        NSLog(@"no cities seleceted");
    }else{
          arrCities = [[NSMutableArray alloc]init];
          arrCities = [mutDictValues objectForKey:@"cities"];
          [self placeCities];
    }
Run Code Online (Sandbox Code Playgroud)

但它在这一行崩溃arrCities = [mutDictValues objectForKey:@"cities"];,出现以下错误:

-[__NSCFConstantString objectForKey:]:
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄这个吗 ?

iphone objective-c nsdictionary nsmutablearray ios

14
推荐指数
2
解决办法
3万
查看次数

NSMutableArray - 在开始时添加数组

这是一个简单的刷新案例.我将数据加载到表中并在后端有一个可变数据数组,我收到一个新数据数组,并希望在现有数组的开头添加这个完整的数组.

一种解决方法是使用新到达的数据创建新数组,然后使用addObjectsFromArray:方法将之前的数组添加到其中 .是否有一些解决方法可以直接将新数据数组添加到上一个数组的开头?

append nsmutablearray ios ios7

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

将一个NSMutableArray连接到另一个NSMutableArray的末尾

这个超级简单问题的简单答案会很棒!这是伪代码:

NSMutableArray *Africa = [Lion, Tiger, Zebra];
NSMutableArray *Canada = [Polar Bear, Beaver , Loon];

NSMutableArray *Animals = *Africa + *Canada;
Run Code Online (Sandbox Code Playgroud)

我最终想要的是:

Animals = [Lion, Tiger, Zebra, Polar Bear, Beaver, Loon];
Run Code Online (Sandbox Code Playgroud)

在Objective-C/Cocoa中实现这一目的的正确语法是什么?

非常感谢!

macos cocoa objective-c nsmutablearray

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