标签: nsmutablearray

关于NSMutableArray objectAtIndex

objectAtIndex是以1而不是0开头的吗?我使用objectAtIndex,并传递数据0,但它表示这是出界的.所以,我想这是从1开始,我是对的吗?

objective-c nsmutablearray

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

如何处理NSMutableArrays中的布尔值?

有人能告诉我为什么我的应用程序在这里崩溃了吗?

以及当我用NSString值替换YES对象时它为什么不崩溃?

我想要做的就是将布尔数据存储到数组中并稍后修改这些数据,有人可以告诉我如何做到这一点吗?

- (void)viewDidLoad {
    [super viewDidLoad];
    NSMutableArray* arr = [[NSMutableArray alloc] initWithObjects:YES, YES, YES, YES, nil];
    NSLog([arr objectAtIndex:1]);
}
Run Code Online (Sandbox Code Playgroud)

cocoa-touch boolean objective-c nsmutablearray

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

Objective-C:复制数组,仅在复制中修改元素(对象)

在询问这个问题之前,我已经阅读了很多SO帖子,我猜这个答案就在那里,但我没有看到.我是Objective-C的新手,我正试图做一个(看似)简单的动作,我无法弄明白.

一般的想法是我有一个NSArray充满对象(特别是类型UIImageView).我想要复制那个数组,我已经做了很多种方式(都成功了).

复制后,我现在有两个数组.我想修改一个对象,比如索引2,只在副本中修改.

到目前为止似乎,因为副本只是复制引用(或指针),更改索引2处的对象将在副本和原始文件中更改它.

那有意义吗?

NSArray *originalArray = @[object1, object2];
Run Code Online (Sandbox Code Playgroud)

我尝试复制这个数组的方式,以便我可以实现我想要的:

NSMutableArray *originalArrayCopy = [NSMutableArray arrayWithArray:originalArray];

NSArray *originalArrayCopy = [originalArray copy];

NSMutableArray *originalArrayCopy = [[NSMutableArray alloc] initWithArray:originalArray];
Run Code Online (Sandbox Code Playgroud)

并且似乎在每种情况下,从副本修改对象也会在原始对象中修改它.

注意:虽然NSArray显然是不可变的,但我原始数组中的对象是可变的.

objective-c nsmutablearray nsarray

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

从NSMutableArray对象属性中删除重复的对象?

我有一个NSObject属性如下

@property (nonatomic, retain) NSString * destinationid;
@property (nonatomic, retain) NSString * destinationname;
@property (nonatomic, retain) NSString * assetid;
@property (nonatomic, retain) NSString * assetname;
@property (nonatomic, retain) NSString * assetdescription;
Run Code Online (Sandbox Code Playgroud)

在这里,我将其保存在NSMutableArray中.

我从服务器获取的数据包含相同的DestinationName,但不同的其他属性.

我想检查一下,如果已经将相同的Object名称添加到NSMutableArray中,请不要再添加它.

我尝试使用内置循环,但没有用:(

谢谢

objective-c nsstring nsmutablearray ios

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

如何使用NSSearchFiled在NSTableView中进行搜索?

我已经实现了一个应用程序,我在其数据源和委托的帮助下使用NSTableview我没有使用NSArrayController,也不想使用它.我的问题是如何在这种情况下将NSSearchField与我的NSTableView绑定?我使用NSArrayController看到了很多答案.我不想将实现转换为NSArrayController,因为NSMutableArray的工作正常.

macos nstableview nsmutablearray nssearchfield

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

在UITableView moveRowAtIndexPath方法期间崩溃

我有一系列字符串,我已经在我的uitableview中显示了.

当我的uitableview启用了编辑时,我正在尝试将一个字符串从第4行移动到第3行,当我调试此代码时,我在代码的索引部分插入对象中获得EXC_BAD_ACCESS.

[myStringsArray insertObject:name atIndex:toIndexPath.row]; 
Run Code Online (Sandbox Code Playgroud)

但是,如果我不调试,只是构建和运行,我打印以下行,然后它崩溃而没有在我的控制台中看到EXC_BAD_ACCESS.

NSLog(@"re-ordered myStringsArray array");
Run Code Online (Sandbox Code Playgroud)

这是我的moveRowAtIndexPath方法的所有代码:

// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
    NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectoryPath = [paths objectAtIndex:0]; 
    NSString *path = [documentsDirectoryPath stringByAppendingPathComponent:@"MyStrings.plist"]; 

    //re-order array
    NSString *name = [myStringsArray objectAtIndex:fromIndexPath.row];
    [myStringsArray removeObjectAtIndex:fromIndexPath.row];
    [myStringsArray insertObject:name atIndex:toIndexPath.row];

    NSLog(@"re-ordered myStringsArray array");
    if([myStringsArray writeToFile:path atomically: YES]){NSLog(@"write succesful");}
    else {NSLog(@"write failed");}

    [myTable reloadData];
}
Run Code Online (Sandbox Code Playgroud)

任何想法为什么它认为我试图访问不存在的东西?

纠正我,如果我错了,但我的可变数组已经分配,​​如果删除方法有效,为什么插入方法不起作用?

谢谢

iphone crash uitableview nsmutablearray ios4

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

内存泄漏警告

我在用户定义的方法中声明了一个数组.我使用此数组来存储从sqlite数据库返回的值.然后我使用该值进行进一步处理......但Xcode在数组声明中给出了以下警告."永远不会读取初始化期间存储的值"这是我的代码:

 NSMutableArray *tempId=[NSMutableArray array];
NSString *sqlStr1=[NSString stringWithFormat:@"select deck_id from decksTable limit '%d' offset '%d'",1,deckID-1];
char *sql1 = (char*)[sqlStr1 UTF8String];
tempId=[appDelegate.dbConnection  fetchColumnFromTable:sql1 col:0];
NSNumber *tempint1 =[tempId objectAtIndex:0];
int actualDeckID=[tempint1 intValue];
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题.

注意dbConnection是数据库连接对象,fetchColumnFromTable是用户定义的方法,它返回从数据库获取的值数组.然后我得到NSNumber中的第一个值并将其转换为整数以在我的代码中使用它.我在tempId数组的声明中获得了上述警告.

iphone memory-leaks nsmutablearray

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

将nil传递给arrayWithArray的结果是什么:?

当你通过会发生什么nil来arrayWithArray:?

假设我有以下代码:

NSMutableArray *myArray = [NSMutableArray arrayWithArray:someOtherArray];

如果someOtherArray碰巧是nil,将myArray是nil或将是一个空的可变数组?

cocoa objective-c nsmutablearray nsarray

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

NSMutableArray的大小(内存)是多少?

我正在解析json数据,并将它们存储到一个NSMutableArray.对于每个数据,参数如下格式,

{
    "id":"6",
    "username":"biju",
    "password":"biju123",
    "usertype":"2",
    "first_name":"biju",
    "last_name":null,
    "email":"b@b.com",
    "blocked":"N",
    "created":"2012-11-02 16:03:19",
    "image":"http:\/\/192.168.1.254\/eatthos\/assets\/upload\/users\/1351852399_thumb.jpg","thumb_image":"1351852399_thumb.jpg",
    "menu_image":"0",
    "thumb_menu_image":"0",
    "city":"njdfh",
    "favorite_food":"kafh",
    "favorite_restaurant":"kafdhj",
    "phone_number":"0",
    "description":"0",
    "token":"Dwx0DG",
    "fb_unique_id":null,
    "account_type":"normal",
    "twitter_id":null,
    "followers":"5",
    "follow":"N"
}
Run Code Online (Sandbox Code Playgroud)

我正在解析大约100K的数据,该数组的大小(内存)是多少?如果我将它用于iPhone应用程序,它会是一个内存问题吗?

iphone xcode json objective-c nsmutablearray

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

NSMutableArray线程安全

在我的应用程序中,我正在访问并从多个线程更改可变数组.一开始它在我尝试访问一个对象时崩溃objectAtIndex,因为索引超出了界限(该索引处的对象已经从另一个线程中的数组中删除).我在互联网上搜索了如何解决这个问题,我决定尝试这个解决方案.我创建了一个带有NSMutableArray属性的类,请参阅以下代码:

@interface SynchronizedArray()
@property (retain, atomic) NSMutableArray *array;
@end

@implementation SynchronizedArray

- (id)init
{
    self = [super init];
    if (self)
    {
        _array = [[NSMutableArray alloc] init];
    }
    return self;
}

-(id)objectAtIndex:(NSUInteger)index
{
    @synchronized(_array)
    {
        return [_array objectAtIndex:index];
    }
}

-(void)removeObject:(id)object
{
    @synchronized(_array)
    {
        [_array removeObject:object];
    }
}

-(void)removeObjectAtIndex:(NSUInteger)index
{
    @synchronized(_array)
    {
        [_array removeObjectAtIndex:index];
    }
}

-(void)addObject:(id)object
{
    @synchronized(_array)
    {
        [_array addObject:object];
    }
}

- (NSUInteger)count
{
    @synchronized(_array)
    {
        return [_array count];
    }
}

-(void)removeAllObjects …
Run Code Online (Sandbox Code Playgroud)

objective-c thread-safety nsmutablearray ios

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