标签: nsmutablearray

来自iPhone plist的数组

我试图从一个plist得到一个数组,如答案所示,但它不起作用.有人能告诉我我错过了什么吗?

这是plist的样子......另一个奇怪的是我无法在纯文本文件中打开它?当我这样做看起来像垃圾.....但它在属性列表编辑器中看起来很好:

<?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">
<dict>
<key>count</key>
<array>
     <integer>5</integer>
</array>
<key>username</key>
<array>
     <string>johnsmith</string>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码.....字典是NSMUtableDictionary,accountsArray是.h文件中的NSMustableArray.

     NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:accountsFilePath];

 dictionary = tempDictionary;
 [tempDictionary release];


 NSMutableArray *nameArray = [[NSMutableArray alloc] init];
 nameArray = [dictionary objectForKey:@"username"];

 accountsArray = nameArray;

 [nameArray release];
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?搞砸了什么?

谢谢...

iphone cocoa-touch plist nsmutablearray

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

NSMutable数组

我有一个NSMutableArray:

NSMutableArray *temp = //get list from somewhere.
Run Code Online (Sandbox Code Playgroud)

现在有一个方法objectAtIndex,它返回指定索引处的对象.

我想要做的是,我想首先检查指定索引处的对象是否存在.如果它存在而不是我想要获取该对象.就像是:

if ([temp objectAtIndex:2] != nil)
{
     //fetch the object
}
Run Code Online (Sandbox Code Playgroud)

但我在if语句中得到异常,说索引超出了限制.

请有人告诉我如何实现这一目标.

iphone cocoa cocoa-touch nsmutablearray

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

Objective-C NSMutableArray套接字?

我想在ArrayList/NSMutableArray中存储几个套接字,但套接字的类型为int,NSMutableArray只接受对象(id).是否有其他数据类型可以用作套接字的容器?我不确定我会有多少条目,所以我希望数据容器就像一个ArrayList.

谢谢!

编辑:我已经尝试将套接字作为NSNumber发送,但是当我尝试使用套接字发送消息时,它无法正常工作并导致XCode崩溃.

sockets iphone arraylist objective-c nsmutablearray

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

为什么会崩溃?

我上了课.这是h文件.

//  MyClass.h
#import <Foundation/Foundation.h>


@interface MyClass : NSObject <NSCoding> {
    NSString *string1;
    NSString *string2;

}
@property (nonatomic, retain) NSString *string1;
@property (nonatomic, retain) NSString *string2;

@end
Run Code Online (Sandbox Code Playgroud)

这是m文件.

//  MyClass.m
#import "MyClass.h"


@implementation MyClass
@synthesize string1, string2;

- (void)encodeWithCoder:(NSCoder *)coder;
{
    if (self = [super init]){
        [coder encodeObject:string1 forKey:@"string1"];
        [coder encodeObject:string2 forKey:@"string2"]; 
    }

}

- (id)initWithCoder:(NSCoder *)coder;
{
    self = [[MyClass alloc] init];
    if (self != nil)
    {
        string1 = [coder decodeObjectForKey:@"string1"];
        string2 = [coder decodeObjectForKey:@"string2"];

    }   
    return self;
} …
Run Code Online (Sandbox Code Playgroud)

crash cocoa-touch objective-c nsuserdefaults nsmutablearray

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

将自定义对象添加到Mutable Array时出现问题

关于xcode中Array的快速问题.我有以下代码,它应该通过php和JSON获得的字符串数组,并将这些字符串转换为自定义对象,字符串作为对象的ivars然后将该对象添加到新数组:

for (int i = 0; i<[list count]; i++) {
        Article *article = [[Article alloc] init]; //creates custom object
        article.uid = [[list objectAtIndex:i] objectAtIndex:0];
        article.title = [[list objectAtIndex:i] objectAtIndex:1]; //adds string as ivars
        article.description = [[list objectAtIndex:i] objectAtIndex:2];
        articleArray = [[NSMutableArray alloc] init]; //inits the new array
        [articleArray addObject:article]; //should add the object but seems to fail
        [article release]; //releases the object
        NSLog(@"%@", article.description);
    }
    NSLog(@"%d", [articleArray count]);
    NSLog([articleArray description]);
}
Run Code Online (Sandbox Code Playgroud)

代码确实使用NSLog(@"%@", article.description);但不是新数组的正确长度返回正确的值,它只向数组添加一个值,这是article.description的字符串,这对我没有意义.list数组包含2个元素,每个元素都是包含字符串的数组.

iphone xcode nsmutablearray

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

为什么NSMutableArray在init类的allo init autorelease时总是出错?

在某处.我放了

@property (nonatomic, retain) NSMutableArray * BusinessQueue;

-(BNUtilitiesQuick *) init {
        if (!(self = [super init]))
        {
            return nil;
        }//if the superclass is NSObject, this must be init
        self.locationManager = [[[CLLocationManager alloc] init]autorelease];
        BusinessQueue = [[[NSMutableArray alloc]init]autorelease]; 
        return self; //and return the object itself
    }
Run Code Online (Sandbox Code Playgroud)

我看到它的方式BusinessQueue = [[[NSMutableArray alloc]init]autorelease]; 将引用计数为1.1.-1表示自动释放(有时是后者)和1表示因为BusinessQueue是一个保留属性.

但是,BusinessQueue有时会被解除分配.

为什么BusinessQueue总是出错而位置经理却没有

任何错误的代码?或NSMutableArray无法在init类声明?

iphone xcode nsmutablearray

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

添加NSMutableArray中的所有值

我有一个NSMutableArray,包含x不同的NSStrings(NSString但只有数字没有字母).我想将所有值相加以返回单个float或int.我想我必须用for循环来做这个,但我对for循环非常不熟悉......好吧我已经达到了这一点:

for (NSString *a in det) 
{
   float x = [a floatValue];
   NSLog(@"%.2f",x);
}
Run Code Online (Sandbox Code Playgroud)

这将在'NSLog`中返回所有这样的值:

23.00
8.00
61.00
...
Run Code Online (Sandbox Code Playgroud)

我怎么才能把它们加起来呢?

cocoa-touch objective-c nsmutablearray ios

0
推荐指数
2
解决办法
3283
查看次数

对于一个强大的集合实例,将它分配给nil等于释放它并分配给nil?

所以我有一个强大的集合变量x(类型为NSMutableArray,例如),当做dealloc时,如果我只做x = nil,它会与下面的效果相同吗?

[x removeAllObjects]; 
[x release]; // not needed in ARC
x = nil; 
Run Code Online (Sandbox Code Playgroud)

objective-c nsmutablearray ios

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

NSMutableArray最后一个Object

我正在尝试iCarousel,有一个函数可以删除视图的索引和数组的索引,

NSInteger index = carousel.currentItemIndex;
[carousel removeItemAtIndex:index animated:YES];
[imagesArray removeObjectAtIndex:index];
Run Code Online (Sandbox Code Playgroud)

我删除它直到剩下一个项目,然后如果剩下一个项目我想插入它的副本.我试过这个:

insertItemAtindex:carousel.currentItemIndex 但它正在插入最后一个视图.

但我想要的是在我的视图中插入carousel的/ imagesArray最后一个对象/索引.我该如何实现它,或者如何确定NSMutableArray在视图中留下的最后一个对象?

nsmutablearray ios icarousel

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

NSMutableArray removeObjectAtIndex在第二次执行时崩溃

我有一个包含许多行的tableview,我希望能够删除这些行.填充tableview的数据存储在NSMutableArray中.要删除一行上的数据我打电话:

- (void)deleteFromArray:(NSUInteger) number{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];  //load NSUserDefaults
    NSMutableArray *storedArray = [[ NSMutableArray alloc] init];
    storedArray = [prefs objectForKey: @"mydata"];
    [storedArray removeObjectAtIndex:number];

    [prefs setObject:storedArray forKey:@"mydata"];
    [storedArray release];
    [prefs synchronize];

}
Run Code Online (Sandbox Code Playgroud)

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        subscribe *subscribeclass = [subscribe alloc];
        [subscribeclass deleteFromArray: indexPath.row];
        [myTableView reloadData];
    }
}
Run Code Online (Sandbox Code Playgroud)

这在我第一次删除行时工作正常.但是当我删除秒行时,应用程序在deleteFromArray中的以下行崩溃:

[storedArray removeObjectAtIndex:number];
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

cocoa-touch uitableview nsmutablearray ios

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