标签: nsmutablearray

EXC_BAD_ACCESS尝试读取NSArray

在下面的代码中,我尝试从plist中读取数据:

 -(void)readPreferences 
    {
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        NSMutableArray * myAppDefaults  = [defaults mutableArrayValueForKey:@"LastList"];
        myCustomObject * savedObject;
        NSUInteger i;
        for (i = 0; i < [myAppDefaults  count]; i++) 
        {
            NSArray * thisArray = [myAppDefaults  objectAtIndex:i];

            savedObject.value1 = [thisArray objectAtIndex:0];
            savedObject.value2 = [thisArray objectAtIndex:1];
            savedObject.value3 = [thisArray objectAtIndex:2];
            savedObject.value4 = [myAppDefaults  objectAtIndex:3];

            [objectsArray addObject:savedObject];
        }

    }
Run Code Online (Sandbox Code Playgroud)

不知何故,当我尝试设置"savedObject.value1"时,我收到"EXC_BAD_ACCESS"错误.

我意识到这很可能是基本的内存管理,或指针/对象的混乱,但我还在学习.我希望有人可以帮助我.最好的问候Sjakelien

cocoa cocoa-touch objective-c nsuserdefaults nsmutablearray

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

检查objectAtIndex是否为零而没有收到错误?

如何在不收到错误的情况下检查NSMutableArray中的对象是否为nil index .. beyond bounds for empty array?我使用以下代码收到错误:

if (![self.sortedArray objectAtIndex:[alphabet indexOfObject:[NSString stringWithFormat:@"%c", (char) [letter characterAtIndex:0]]]]) {
      NSMutableArray *arr = [NSMutableArray arrayWithObject:countryDict];
      [self.sortedArray addObject:arr];
}
else {
      [[self.sortedArray objectAtIndex:[alphabet indexOfObject:[NSString stringWithFormat:@"%c", (char) [letter characterAtIndex:0]]]] addObject:countryDict];
}
Run Code Online (Sandbox Code Playgroud)

indexing objective-c nsmutablearray nsarray

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

操纵两个数组

我有两个数组:

NSMutableArray *web = [[NSMutableArray alloc] initWithObjects:@"2",@"3",@"4",nil];
NSMutableArray *disk = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",nil];
Run Code Online (Sandbox Code Playgroud)

在比较两个数组之后,我想创建一个名为的数组remArray,其中包含磁盘数组中但不存在于Web数组中的对象(在本例中为字符串"1").

然后我想创建一个名为的数组addArray,其中包含存在于Web数组中但不存在于磁盘数组中的对象(在本例中为字符串"4").

有没有一个简单的方法来做这个没有太多的开销?

objective-c nsmutablearray

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

如何排序NSMutableArray?需要进行代码审查

晚上好.

这段代码有效.它通过Suit和Card Value对一系列卡片进行排序.这也是非常蛮力.你能推荐一个更好的方法吗?Objective-C是否有助于处理被排序的对象本身有多个字段的情况,排序依赖于哪些字段?

-(void) sort: (NSMutableArray *) deck {        
    NSUInteger count = [deck count];

    Card *thisCard;
    Card *nextCard;

    int this;
    int next;

    BOOL stillSwapping = true;

    while (stillSwapping) {

        stillSwapping = false;

        for (NSUInteger i = 0; i < count; ++i) {
            this = i;
            next = i+1;

            if (next < count) {

                thisCard = [deck objectAtIndex:this];
                nextCard = [deck objectAtIndex:next];

                if ([thisCard suit] > [nextCard suit]) {                        
                    [deck exchangeObjectAtIndex:this withObjectAtIndex:next];
                    stillSwapping = true;
                } 


                if ([thisCard suit] == [nextCard …
Run Code Online (Sandbox Code Playgroud)

sorting objective-c nsmutablearray

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

mutableCopy使包含的对象可变吗?

myArray是NSDictionary对象的NSArray.请问[myArray mutableCopy]是否包含原始NSDictionary对象或NSMutableDictionary副本?有一种简单的方法可以使不可变对象图完全可变吗?

cocoa objective-c nsmutablearray

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

将一组新数据写入Plist而不是覆盖它

我试图获得一个plist来存储多组数据,但每次我保存(使用ActionSheet中的按钮),它都会覆盖前一组.我想添加多个"朋友"及其数据.我不太热衷于使用Core Data,所以我想知道你如何使用Plist来做到这一点.

以下是保存按钮的代码:

        NSMutableDictionary *friend = [[NSMutableDictionary alloc] init];

        NSMutableDictionary *array = [[NSMutableDictionary alloc]init];
        [array setObject:friendName.text forKey:@"Name"];
        [array setObject:friendPhone.text forKey:@"Phone Number"];
        [array setObject:friendEmail.text forKey:@"Email Address"];
        [array setObject:friendChatSN.text forKey:@"Chat Screen Name"];

        [friend setValue:array forKey: @"Friend Data"];


        NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);

        NSString *documentsPath = [paths objectAtIndex:0];

        NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"FriendList.plist"];

        [friend writeToFile:plistPath atomically: TRUE];
Run Code Online (Sandbox Code Playgroud)

而不是覆盖它,我如何修改代码以在每次保存时添加一组新的朋友数据?

iphone save plist nsmutablearray ios

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

iOS错误:[__ NSArrayI objectAtIndex:]:超出边界的索引1 [0 .. 0]

在我的应用程序中,我尝试从url加载内容,将它们存储在一个可变数组中并在表视图中显示它们.但是我无法让它工作,因为每次运行应用程序时都会出现此错误:

*** Terminating app due to uncaught exception 'NSRangeException', 
reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
*** First throw call stack:
(0x34dd088f 0x36d9e259 0x34d2823d 0x316e562f 0x315f09a9 0x313c0c5d 0x313c1b95 0x313c1ae7
 0x313c16c3 0xa5cfb 0x33623ec7 0x35387a09 0x35390051 0x33622965 0xa4dc1 0x313a8e33 
 0x313cd629 0x31391d7d 0x314544dd 0x3139a55d 0x3139a579 0x3139a40b 0x3139a3e7 0x313a8015 
 0x313a1985 0x3136fc6b 0x3136f70f 0x3136f0e3 0x3439222b 0x34da4523 0x34da44c5 0x34da3313 
 0x34d264a5 0x34d2636d 0x313a0a13 0x3139de7d 0xa4745 0xa46dc)
terminate called throwing an exception
Run Code Online (Sandbox Code Playgroud)

我创建了应该在viewDidLoad中填充表格的数组:

_videos = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)

然后我连接到url并解析收到的xml数据.这样就可以了.当打开某个标签时,我创建了我的视频对象,在用数据填充之后,我将这些对象添加到我的数组中:

[_videos addObject:currentVideo];
Run Code Online (Sandbox Code Playgroud)

这似乎也有效,因为它返回正确数量的视频

- (NSInteger)tableView:(UITableView …
Run Code Online (Sandbox Code Playgroud)

uitableview nsmutablearray ios indexoutofboundsexception

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

insertObject:atIndex: - 索引3超出空数组的边界

我基于字典键创建了一个数组:

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)

objective-c nsdictionary nsmutablearray nsarray ios

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

NSMutableArray添加或删除

这里我在第二个vc中的一个vc传递中有一个可变数组,带有一些值.

我需要更改self.namesFoodSubCategory问题中的值是否也会更改第一个vc数组中的值.

现在,如果我将其更改为 self.namesFoodSubCategory = [namesArray copy] ; 现在它复制得很好但我无法添加或删除其中的元素self.namesFoodSubCategory会导致崩溃.

有谁能够帮我????

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andParamArray:(NSMutableArray *)namesArray
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        self.namesFoodSubCategory = namesArray ;

        NSLog(@"In Sec   %@",self.namesFoodSubCategory);

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

add objective-c nsmutablearray ios

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

不兼容的指针类型将"NSMutableArray"分配给"NSArray"?

这是我的代码

 NSMutableArray * reversedNamesArray; //theres about a thousand variable already stored in here, this is just for documentation
reversedNamesArray = [reversedNamesArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

//Incompatible pointer type assigning "NSMutableArray" to "NSArray"
Run Code Online (Sandbox Code Playgroud)

上面的消息是我得到的,我知道这意味着什么,但我不想采取额外的步骤将一千个变量的NSMutableArray复制到NSArray是否有任何演员我可以用来修复警告,它没有不会影响我的代码,但我只想修复它.你能解释为什么它们不兼容,它们NSMutableArray和NSArray应该使用相同数量的字节,所以我不明白为什么它们首先是不兼容的.

arrays objective-c nsmutablearray nsarray

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