我有一个字符串,其中包含一些带句点和逗号的文本.我想根据逗号和句点将其转换为NSArray.我使用这种方法根据一种条件进行分离,但是如何用两种方法进行分离呢?
componentsSeparatedByString:
Run Code Online (Sandbox Code Playgroud)
谢谢.
我通过一个循环NSArray的NSDictionaries,我那么想使用的一个值在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%确定数组中有这种类型的值...并且很多就此而言.
任何帮助,将不胜感激.
我没有注意到[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-1和i+1处理对象时引用对象i,它似乎并不适合它.避免这些错误的其他任何提示,除了不那么无能之外?
我有一个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)
有没有办法实现这个目标?
我有一个包含定制类对象的数组.但是,在初始化时,编译器给出了一个错误 - "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)
有人能告诉我我搞砸的地方以及为什么我收到这个错误?
请考虑以下代码:
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打印数组的时候.为什么这样工作?谁能解释一下?
我通过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语句有效.如果我在第一种情况下定义所有代码而不是使用数组,它工作正常.但我需要以编程方式为此项目执行此操作.
最近我正在学习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)
如您所见,差异是关键.
为什么会崩溃?
我从这段代码中得到一个奇怪的错误:
let path = NSBundle.mainBundle().pathForResource("SampleData", ofType: "plist")
let dataArray = NSArray(contentsOfFile: path!)
for dict: AnyObject in dataArray{ ...}
Run Code Online (Sandbox Code Playgroud) 我有一些对象,我需要在其中找到特定键的总和.
我在对象中有以下属性
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) nsarray ×10
ios ×8
objective-c ×5
swift ×3
arrays ×1
boolean ×1
cocoa ×1
for-loop ×1
inheritance ×1
int ×1
iphone ×1
nsdictionary ×1
nsobject ×1
nsstring ×1
xcode ×1