标签: nsarray

predicateWithFormat vs stringWithFormat:前者应该和后者做同样的事吗?

我有一个带有文件名的数组,我想找到所有以00001.trc结尾的名称,当它traceNum是1.我试过这个:

NSPredicate *tracePredicate = [NSPredicate predicateWithFormat:@"SELF ENDSWITH \"%05d.trc\"", traceNum];
Run Code Online (Sandbox Code Playgroud)

而我的谓词SELF ENDSWITH "%05d.trc"不是SELF ENDSWITH "00001.trc"

我试过这个:

NSPredicate *tracePredicate = [NSPredicate predicateWithFormat:@"SELF ENDSWITH %@%05d.trc%@", @"\"", traceNum, @"\""];
Run Code Online (Sandbox Code Playgroud)

我有一个例外:Unable to parse the format string "SELF ENDSWITH %@%05d.trc%@".

所以我尝试了这个:

NSPredicate *tracePredicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"SELF ENDSWITH \"%05d.trc\"", traceNum]];
Run Code Online (Sandbox Code Playgroud)

它的工作原理.

那么我真的需要stringWithFormat除了predicateWithFormat或者是否有一些我在创建谓词时没有正确做的事情?

macos cocoa nsarray nspredicate

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

从iPhone中的数组中检索NSString

我有一个数组,其中包含地图上路线的描述.我通过解析JSON得到了这个数组.我的数组包含以下格式的字符串:

    "<b>Sri Krishna Nagar Rd</b> \U306b\U5411\U304b\U3063\U3066<b>\U5317\U6771</b>\U306b\U9032\U3080",


"\U53f3\U6298\U3057\U3066\U305d\U306e\U307e\U307e <b>Sri Krishna Nagar Rd</b> \U3092\U9032\U3080",


        "\U5927\U304d\U304f\U5de6\U65b9\U5411\U306b\U66f2\U304c\U308a\U305d\U306e\U307e\U307e <b>Bailey Rd/<wbr/>NH 30</b> \U3092\U9032\U3080<div class=\"\">\U305d\U306e\U307e\U307e NH 30 \U3092\U9032\U3080</div><div class=\"google_note\">\n<b landmarkid=\"0x39ed57bfe47253b7:0x779c8bf48892f269\" class=\"dir-landmark\">Petrol Bunk</b>\U3092\U901a\U904e\U3059\U308b<div class=\"dirseg-sub\">\Uff083.9&nbsp;km \U5148\U3001\U53f3\U624b\Uff09</div>\n</div>",
Run Code Online (Sandbox Code Playgroud)

现在我想从这个数组得到名称,比如Sri Krishna Nagar Rd,NH 30 Petrol Bunk.前两个应该给Sri Krishna Nagar Rd,最后应该给NH 30 Petrol Bunk 我如何得到这样的结果.任何帮助将不胜感激.Thanx提前.

再说一次,假设我有这种格式的字符串...... "\U5de6\U6298\U3059\U308b"它没有ny地名.我将如何处理这种情况.

iphone nsstring nsarray

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

如何限制NSLog中的NSArray输出

我想限制NSArray的输出.

如果我的NSArray有,请说5个NSStrings:

NSArray *alphaList = [NSArray arrayWithObjects:@"v", @"w", @"x", @"y", @"z", nil];
Run Code Online (Sandbox Code Playgroud)

显然编码:

NSLog(@"%@", alphaList);
Run Code Online (Sandbox Code Playgroud)

将输出所有5个NSString对象.

我想知道是否有办法将输出限制为"n"个对象.

我希望有一种方法可以通过在格式说明符中添加一个数字来实现这一点,但它看起来不太可能.

有什么建议?

cocoa objective-c limit nsarray

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

- [__ NSArrayI replaceObjectAtIndex:withObject:]:发送到实例的无法识别的选择器

我有一个Mutable NSArray存储对象类型(ids - NSNumber,NSString),它们将存储数字(1,2,3,4等),操作(+, - ,/,*等)和变量( x,y,z等).我将变量和相关值存储在NSDictionary中,键的NSStrings等于x,y,z,NSNumber值分别为5,5,2.我想将我的NSArray中的变量替换为存储在我的NSDictionary中的实际值.当我尝试替换对象时,我不断收到以下错误.请帮忙.

- [__ NSArrayI replaceObjectAtIndex:withObject:]:发送到实例的无法识别的选择器

        NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:
                              [NSNumber numberWithDouble:5],@"x",  
                              [NSNumber numberWithDouble:5],@"y", 
                              [NSNumber numberWithDouble:2],@"z", 
                              nil];

+ (double)runProgram:(id)program
 usingVariableValues:(NSDictionary *)variableValues;
{
    // introspection - ensure program is NSArray and variableValues is NSDictionary
    if ([program isKindOfClass:[NSArray class]] && [variableValues isKindOfClass:    [NSDictionary class]])
    {
        // array for program stack
        NSMutableArray *stack = [program copy];

        // Loop to replace variables with actual values in NSDictionary
        for (NSUInteger i = 0; i < [stack count]; i++) …
Run Code Online (Sandbox Code Playgroud)

objective-c nsdictionary nsarray ios5

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

从'nsarray'分配给'nsmutablearray'的不兼容指针类型

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES];

sortedFloats = [Arr_distance sortedArrayUsingDescriptors:
                    [NSMutableArray arrayWithObject:sortDescriptor]];
Run Code Online (Sandbox Code Playgroud)

sortedFloatsNSMutableArray 在哪里,Arr_distance也是NSMutableArray

我收到警告Incompatible pointer types assigning to 'NSMutableArray ' from 'NSArray ' 仍然结果是正确的,但是警告是什么?

iphone nsarray ios4 ios

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

过滤一个数组:谓词?块?

我正在寻找在第二次治疗之前过滤阵列的解决方案,无需进一步测试即可应用.

假设我想从给定文件夹中删除大于500K的所有文件.我可以:

1)获取一个枚举器,然后为每个项目测试大小并删除大文件; 2)获取一个枚举器,过滤它,然后删除所有剩余的文件.

我想知道如何实现解决方案2.我正在考虑另一种处理(这次没有删除),如图像缩减,可以多次应用.在每个循环中,文件大小减小,枚举器总是变小,直到它为空.此时,治疗结束了.

但是怎么做呢?我见过许多谓词的例子,比如@"SELF包含[c]'e'"(有很小的变化),但从来没有SELF.size> 500000 ......

我想解决方案可能是一个障碍,但我必须承认我完全迷失了......

求助!

nsarray nspredicate objective-c-blocks

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

将两个数组中的所有字符串放入另一个数组中

假设我有两个数组:

NSArray * first = @[@"One", @"Two", @"Three"," @Four"];
NSArray * second = @[@"Four", @"Five", @"Six", @"One"];
Run Code Online (Sandbox Code Playgroud)

我想将两者中的对象放入另一个数组中:

NSArray * both = @[@"Four", @"One"]; 
Run Code Online (Sandbox Code Playgroud)

有没有比通过第一个项目的每个项目更优雅的方式并检查它是否包含在第二个项目中?

collections cocoa cocoa-touch nsarray ios

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

如何将NSStrings的NSArray转换为Json String iOS

我有一个滚动数组

NSArray *rollArray = [NSArray arrayWithObjects:@"1", @"22", @"24", @"11", nil];
Run Code Online (Sandbox Code Playgroud)

我需要在Web服务请求中发送此数组

其格式如下(采用JSON格式)

JSON数据

{
  "existingRoll":["22","34","45","56"], // Array of roll numbers
  "deletedRoll":["20","34","44","56"] // Array of roll numbers
}
Run Code Online (Sandbox Code Playgroud)

但我在将数字滚动数字(rollArray)转换为所需格式的json String时遇到问题.

我正在尝试这个

 NSMutableDictionary *postDict = [[NSMutableDictionary alloc]init];
  [postDict setValue:[rollArray componentsJoinedByString:@","] forKey:@"existingRoll"];

 NSString *str = [Self convertToJSONString:postDict]; // converts to json string

 NSData *jsonData = [NSJSONSerialization dataWithJSONObject:str options:0 error:nil];

 [request setHTTPBody:jsonData];
Run Code Online (Sandbox Code Playgroud)

我使用的是iOS 7

cocoa json objective-c nsarray ios

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

所有可能的组合,无需重复NSArray

假设我有一个包含3个数字的数组:

NSArray *array = @[@1, @2, @3];
Run Code Online (Sandbox Code Playgroud)

而且我想在不重复的情况下完成所有组合.
所以我需要的是:
(1)
(2)
(3)
(1,2)
(2,3)
(1,3)
(1,2,3)

我当前的代码是这样的:

NSArray *array = @[@1, @2, @3];
int numberOfCardsOTable = [array count];

//NSLog(@"array = %@", array);

for (int lenghtOfArray = 1; lenghtOfArray <= numberOfCardsOTable; lenghtOfArray++)
{
    for (int i = 0; i < numberOfCardsOTable; i++)
    {
        // array bound check
        if (i + lenghtOfArray > numberOfCardsOTable) {
            continue;
        }

        NSArray *subArray = [[NSMutableArray alloc] init];

        subArray = [array subarrayWithRange:NSMakeRange(i, lenghtOfArray)];

        NSLog(@"array = %@", subArray); …
Run Code Online (Sandbox Code Playgroud)

math objective-c combinatorics nsarray

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

Objective-C - 向NSArray添加addObject

如何使用此代码将对象添加到NSArray?尝试执行此操作时出现此错误消息.

NSArray *shoppingList = @[@"Eggs", @"Milk"];
NSString *flour = @"Flour";
[shoppingList addObject:flour];
shoppingList += @["Baking Powder"]
Run Code Online (Sandbox Code Playgroud)

错误信息

/Users/xxxxx/Documents/iOS/xxxxx/main.m:54:23: No visible @interface for 'NSArray' declares the selector 'addObject:'
Run Code Online (Sandbox Code Playgroud)

请指教.谢谢.

objective-c nsarray ios

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