标签: nsarray

将NSString转换为具有多个条件的NSArray

我有一个字符串,其中包含一些带句点和逗号的文本.我想根据逗号和句点将其转换为NSArray.我使用这种方法根据一种条件进行分离,但是如何用两种方法进行分离呢?

componentsSeparatedByString:
Run Code Online (Sandbox Code Playgroud)

谢谢.

iphone xcode nsstring nsarray ios

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

如何从NSDictionary数组中检查bool值

我通过一个循环NSArrayNSDictionaries,我那么想使用的一个值在NSDictionary这类型的BOOL一个,如果statment ..但我有一些麻烦的事情了.

这就是我的for loop样子

for(NSDictionary *dict in arrayOfDictionaries)
    {
        NSNumber *boolCheck = [dict objectForKey:@"ISREADY"]; // isReady is the bool value which is either 0 or 1

        if (boolCheck == [NSNumber numberWithBool:YES]) {

//...
   }
}
Run Code Online (Sandbox Code Playgroud)

发生的事情是它循环遍历我的数组,但从未满足我的if语句的条件,即使我100%确定数组中有这种类型的值...并且很多就此而言.

任何帮助,将不胜感激.

boolean objective-c nsdictionary nsarray ios

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

来自[NSArray count]的常量错误是无符号的

我没有注意到[NSArray计数]的后果,一遍又一遍地制造错误unsigned.今天的例子相对不寻常:

for (int i = -1; i < [myArray count]; i++) {
Run Code Online (Sandbox Code Playgroud)

这个循环从不执行!你需要(int)[myArray count].我通常的错误是:

for (int i = 0; i < [myArray count] - 1; i++) {
Run Code Online (Sandbox Code Playgroud)

如果数组为空,则此循环基本上永远执行,因为[myArray count]-1溢出了unsigned int.

我尽可能使用快速枚举,但在这个项目中,我经常需要在索引i-1i+1处理对象时引用对象i,它似乎并不适合它.避免这些错误的其他任何提示,除了不那么无能之外?

int for-loop objective-c nsarray

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

没有零的NSArray的最小值和最大值

我有一个NSArray,想知道最大和最小整数.

我目前使用:

int max = [[array valueForKeyPath:@"@max.intValue"] intValue];
int min = [[array valueForKeyPath:@"@min.intValue"] intValue];
Run Code Online (Sandbox Code Playgroud)

但现在我想知道没有输入零的最小值和最大值(数组只有正值)

ex:
array=[3, 6 ,7 , 13, 86, 45, 0]
min=3
max=86
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?

objective-c nsarray ios

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

为什么我不能用对象初始化这个NSArray?

我有一个包含定制类对象的数组.但是,在初始化时,编译器给出了一个错误 - "Lexical or Preprocessor" Expected ':'

interface myClass : NSObject
@property (readwrite, strong) NSString* name;
@property (readwrite, strong) NSString* home;
@property (readwrite, strong) Preference pref; // This is another custom class
-(id) initWithName:(NSString*) name home:(NSString*) home preference:(Preference) preference;
end

@interface MyViewController()
@property (nonatomic, strong) NSArray *rowArray;
@end

@implementation MyViewController
...
...
...

- (void) initializeArray
{
    self.rowArray = @{
                      [[myClass alloc] initWithName:@"Harry" home:@"New York" preference :Acura],
                      [[myClass alloc] initWithName:@"Win" home:@"Seattle" preference :Toyota];
                    };
}
Run Code Online (Sandbox Code Playgroud)

有人能告诉我我搞砸的地方以及为什么我收到这个错误?

objective-c nsarray nsobject ios

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

什么是NSArray的实际类别?

请考虑以下代码:

NSArray *array = [NSArray array];

Class class      = [array class];
Class superclass = [array superclass];

NSLog(@"Class %@", class); // __NSArrayI, ok
NSLog(@"Superclass %@", superclass); // NSArray, why? why not NSObject?
Run Code Online (Sandbox Code Playgroud)

当打印数组的超类我希望看到NSObject,但它打印NSArray.实际上我希望看​​到NSArray打印数组的时候.为什么这样工作?谁能解释一下?

inheritance cocoa objective-c nsarray

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

如何以编程方式填充开关案例值?

我通过JSON提取了我的case语句允许的系统代码列表.它们以字符串形式显示,如下所示:

let validCodesFromJson:String = "001, 002, 003, 004, 005, 007, 008, 090, 091, 092, 096"
Run Code Online (Sandbox Code Playgroud)

然后我将此字符串转换为一个数组,其中包含以下内容:

let validCodes:NSArray = validCodesFromJson.componentsSeparatedByString(", ")
Run Code Online (Sandbox Code Playgroud)

我需要将这个代码数组放到我的switch语句的第一个例子中.

switch responseArray[selectedResponseTableRow]["code"]! {
        case validCodes:

            successfulPostAnimation()

        case "006":

            showAlertWindow("Alert", message: "Code was 006", buttonText: "OK")

        default:

           showAlertWindow("Alert", message: "Code was not in the list", buttonText: "OK")
        }
Run Code Online (Sandbox Code Playgroud)

如果代码在其使用默认的其他情况下为"006",则switch语句有效.如果我在第一种情况下定义所有代码而不是使用数组,它工作正常.但我需要以编程方式为此项目执行此操作.

switch-statement nsarray ios programmatically-created swift

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

NSUserDefaults保存两个导致崩溃的阵列

最近我正在学习NSUserDefaults,然后做了如下演示:

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 NSMutableArray *activity_array = [NSMutableArray array];
 NSMutableArray *movie_array = [NSMutableArray array];
 [defaults setObject:activity_array forKey:@"activity"];
 [defaults setObject:movie_array forKey:@"movie"];
 [defaults synchronize];
Run Code Online (Sandbox Code Playgroud)

然后我尝试编写以下内容,我将在这篇文章的持续时间内调用"code2":

 NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
 NSMutableArray *array = [userDefault objectForKey:@"activity"];
 [array addObject:@"123"];
Run Code Online (Sandbox Code Playgroud)

演示仍然有效.
但是当我用以下代码替换"code2"时,演示崩溃了:

 NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
 NSMutableArray *array = [userDefault objectForKey:@"movie"];
 [array addObject:@"123"];
Run Code Online (Sandbox Code Playgroud)

如您所见,差异是关键.
为什么会崩溃?

nsuserdefaults nsarray ios

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

NSArray的?没有名为"Generator"的成员

我从这段代码中得到一个奇怪的错误:

let path = NSBundle.mainBundle().pathForResource("SampleData", ofType: "plist")

let dataArray = NSArray(contentsOfFile: path!)

for dict: AnyObject in dataArray{ ...}
Run Code Online (Sandbox Code Playgroud)

nsarray ios swift

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

如何在swift中查找自定义对象数组中某些键的所有对象的总和

我有一些对象,我需要在其中找到特定键的总和.

我在对象中有以下属性

class Due: NSObject {
var dueIndex: Int?
var dueAmount: Double?
}
Run Code Online (Sandbox Code Playgroud)

我有以下逻辑将对象添加到数组

   var duesArray = [Due]()

    for i in 0..<10 {
        let dueObject = NDDue();
        // Update the due object with the required data.
        dueObject.dueIndex = i
        dueObject.dueAmount = 100 * i

        // Add the due object to dues array.
        duesArray.append(dueObject)
    }
Run Code Online (Sandbox Code Playgroud)

在此之后,我需要将duesArray中的所有值与key dueAmount相加.请告诉我如何使用KVC实现它.

我试过使用下面的行.

print((duesArray as AnyObject).valueForKeyPath("@sum.dueAmount")).
Run Code Online (Sandbox Code Playgroud)

得到以下错误

failed: caught "NSUnknownKeyException", "[Due 0x7ff9094505d0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key dueAmount."
Run Code Online (Sandbox Code Playgroud)

arrays key-value-coding nsarray ios swift

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