标签: nsarray

检查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
查看次数

如何使用nsarray初始化nsmutablearray

我正在尝试NSMutableArray使用a的值初始化a NSArray但是当我NSLog新创建的NSMutableArray所有我得到的是(null),(null)...等

我不知道为什么会发生这种超级令人沮丧的事情.

我myMutableArray在标题@synthesize等设置..

然后在parserdidend委托中这是我尝试做的.

- (void)parserDidEndDocument:(NSXMLParser *)parser
{
    if (dataSetToParse == @"ggf"){        
        //Filter results (ISTOY = T)
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like %@",@"ISTOY",@"T"];
        NSArray *filteredArray = [parsedDataArrayOfDictionaries filteredArrayUsingPredicate:predicate];

       NSLog(@"%@", filteredArray); //This prints correct details

        [myMutableArray setArray:filteredArray];

         NSLog(@"%@", myMutableArray); //This prints (null), (null)... etc

    //Use myMutableArray later...
    }
Run Code Online (Sandbox Code Playgroud)

这几乎总结了它.

iphone foundation nsmutablearray nsarray ios

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

测试我的数组在给定索引处是否为零?

我正在尝试创建一个NSMutableArray包含给定索引的另一个内容.

initWithArray:如果前一个数组在索引处有任何内容,我正在初始化新数组,否则使用plaininit

此代码不起作用,但您应该能够从中获取想法:

NSMutableArray *typeCourseCutId;
if([self.typeCourseCut objectAtIndex:typeCourseIndex] != nil){
    typeCourseCutId = [[NSMutableArray alloc]initWithArray:[self.typeCourseCut objectAtIndex:typeCourseIndex]];
} else {
    typeCourseCutId = [[NSMutableArray alloc]init];
}
Run Code Online (Sandbox Code Playgroud)

这种测试有解决方案吗?

cocoa objective-c nsarray

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

与NSMutableArray相比,我可以修改NSArray中的数据吗?

我找到了很多关于NSMutableArrayvs的讨论NSArray.这非常有趣,我知道您无法在NSArray中添加或删除对象

但是有可能改变一个NSArray?

我的意思是,如果我有一个NSArray的NSNumber,我可以改变NSNumber的NSArray或者我应该使用NSMutableArray能够修改该对象的值NSArray ?

nsmutablearray nsarray ios

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

使用NSDictionary valueForKey查找对象与通过NSArray进行迭代

我正在为一些图像开发一个简单的iOS缓存系统.我需要跟踪UIImage本身及其标识符.现在,我试图找出哪种方法可以更快/更有效地访问正确的缓存图像.

选项1:

for (CachedImage* image in [cachedImageArray]
{
  if ([[image identifier] isEqualToString:@"id_12345"]
  { 
    // use that image
  }
}
Run Code Online (Sandbox Code Playgroud)

选项2:

UIImage* imageToRetrieve = [cachedImagesDictionary objectForKey:@"id_12345"
Run Code Online (Sandbox Code Playgroud)

使用一种方法或另一种方法有什么好处吗?如果是这样,它是不可忽视的吗?谢谢.

performance cocoa objective-c nsarray ios

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

在'empty'数组中的特定索引处插入对象

在我的应用程序中,我试图能够从我的服务器下载两个对象,一个"文章"和一个图像.'article'对象(从sql-query翻译成NSObject的子类)有一个指向下载图像的指针,显然需要比文章查询更长的下载时间.当我'下载'文章时,他们最终会进入NSArray.当它们完成后,我将遍历数组以启动每个图像的异步下载,如下所示:

for(Article *a in articles)
{
    NSString *url = a.imageURL;
    //Start async download of this image
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Parse Framework来执行此操作,因此对于没有使用它的人来说块可能看起来很奇怪,所以我只是解释一下:在块中(当异步下载完成时),我正在分配将NSData(图像)返回给另一个NSMutableArray名为的数组,articleImages我希望这个数组中的图像索引对应于另一个文章的索引; 两个阵列中的相同年表.

现在,我这样做是:[articleImages insertObject:data atIndex:i];(其中i来自for循环,没有真正使用上述的foreach),因为该块仍然是相同的for循环中.这是现在的工作,但到目前为止我只测试了三篇文章.如果我在这里并没有完全错误,那么这是一个糟糕而有缺陷的方法,就像image2下载速度比image1更快的情况,即使它稍后开始.在那些情况下,我想我会偶然发现一个异常,说我不能index:2在空数组中插入对象.

我正在考虑使用大小的虚拟数据填充数组[articles count],然后i在下载的图像中以随机顺序替换正确的index()虚拟数据.但即使想到这一点,我也觉得很脏.必须有一个正确的方法来做到这一点?我不完全确定要搜索什么...

asynchronous objective-c nsmutablearray nsarray ios

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

用另一个带有id的nsarray对NSArray进行排序

我有2个nsarrays 1与nsdictionary的另一个与nsnumbers

NSArray *arr1 = @[@{@"id":@1},@{@"id":@2},@{@"id":@3},@{@"id":@4}];
NSArray *arr2 = @[@3,@1,@4,@2];
Run Code Online (Sandbox Code Playgroud)

并且我想按照arr2的顺序通过他们的id对我的arr1进行排序这可能吗?

sorting objective-c nsarray ios

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

从[NSArray valueForKeyPath:@"@ max.value"]获取dataModel而不仅仅是值

这是我的数据模型:

@interface DataModel : NSObject
@property (strong, nonatomic) NSString *label;
@property (nonatomic) float value;
@property (nonatomic) NSInteger index;
@property (nonatomic, strong) NSString *unit;
@end
Run Code Online (Sandbox Code Playgroud)

我有一个NSArray与这个数据模型

NSArray *myDataModels;
Run Code Online (Sandbox Code Playgroud)

现在我需要从这个数组中获取最高的数据模型 @property (nonatomic) float value;

我可以通过使用获得最高价值

[[myDataModels valueForKeyPath:@"@max.value"] intValue]
Run Code Online (Sandbox Code Playgroud)

但我需要的是DataModel具有最高价值的整体,而不仅仅是价值.

有人可以帮帮我吗?

objective-c nsarray ios

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

在NSArray中更新NSDictionary

我有一个NSArray的NSDictionaries.我需要更新NSArray的NSDictionaries与新值更新的字典重点之一的价值.

请参见下面的NSArray结构.Key3如果Key1匹配某个值(例如2),我想更新此结构内部的值.这样做最快的方法是什么?我不想使用传统的For循环.

[myArray valueForKeyPath:@"@unionOfObjects.Key3"];

<__NSCFArray 0xe70c10>(
{
    Key1 = 1;
    Key2 = "New Location";
    Key3 =     (
        Data1,
        Data2,
        Data3
    );
},
{
    Key1 = 2;
    Key2 = "Old Location";
    Key3 =     (
        Data1,
        Data2,
        Data4
    );
}
)
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c nsdictionary nsarray ios

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

如何本地化数组?

我正在尝试将我的项目翻译成另一种语言,但是在我的数组本地化时我遇到了困难.例如:

tableData = [[NSArray alloc] initWithObjects:
    @"Test1",
    @"Test2",
    @"Test3",
    @"Test4",
    @"Test5",
    nil];
Run Code Online (Sandbox Code Playgroud)

我试过了

tableData = [[NSArray alloc] initWithObjects:NSLocalizedString
    (@"Test1",@"Test1"),
    (@"Test2",@"Test2"),
    ...
Run Code Online (Sandbox Code Playgroud)

和

tableData = [[NSArray alloc] initWithObjects:NSLocalizedString
    ((@"Test1",@"Test1"),
    (@"Test2",@"Test2")),
    ...
Run Code Online (Sandbox Code Playgroud)

但我得到"表达结果未使用".

生成.strings文件和本地化其他所有内容的所有过程都很好并且正常工作,我只需要一些帮助来找出如何将其写入数组.

有小费吗?

localization objective-c nsarray

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