bra*_*n56 1 null objective-c nsdictionary nsnumber ios
我有以下代码块:
NSNumber* dayNsNumber = [[NSNumber alloc] initWithInt:dayNumber+1];
NSLog(@"dayNsNumber: %d", [dayNsNumber intValue]);
if(boolVar){
UIAlertView* success = [[UIAlertView alloc] initWithTitle:@"Title" message:[NSString stringWithFormat:@"Day %d!", dayNumber+1] delegate:self cancelButtonTitle:nil otherButtonTitles:@"Star", nil];
[success show];
NSLog(@"dayNsNumber: %d", [dayNsNumber intValue]);
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
dayNsNumber, "Day Number",
[self getCurrentLocalDate], @"Date",
[self getCurrentLocalTime], @"Time",
nil];
}
Run Code Online (Sandbox Code Playgroud)
会发生什么事情,当我运行代码时,它会在初始化时挂起,params
NSDictionary
并说它dayNsNumber
就是nil
.
Xcode显示线程1:EXC_BAD_ACCESS(代码= 1).
我该如何解决这个问题?我想添加dayNsNumber
到我的params
字典中.
此外,这里是getCurrentLocalDate
和getCurrentLocalTime
:
-(NSString*)getCurrentLocalDate;{
NSString *formatString = [NSDateFormatter dateFormatFromTemplate:@"dd-MM-yyyy" options:0 locale:[NSLocale currentLocale]];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:formatString];
NSString *todayString = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"todayString: \"%@\"", todayString);
return todayString;
}
-(NSString*)getCurrentLocalTime;{
NSString *formatString = [NSDateFormatter dateFormatFromTemplate:@"HH:mm:ss zzz" options:0 locale:[NSLocale currentLocale]];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:formatString];
NSString *timeString = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"timeString: \"%@\"", timeString);
return timeString;
}
Run Code Online (Sandbox Code Playgroud)
问题在于关键:"Day Number"
应该是@"Day Number"
.
另请注意,您现在可以为数字,数组和词典使用新语法.例如,这个
NSNumber* dayNsNumber = [[NSNumber alloc] initWithInt:dayNumber+1];
Run Code Online (Sandbox Code Playgroud)
可以像这样重写:
NSNumber* dayNsNumber = @(dayNumber+1);
Run Code Online (Sandbox Code Playgroud)
字典初始化可以像这样完成:
NSDictionary *params = @{
@"Day Number" : dayNsNumber
, @"Date" : [self getCurrentLocalDate]
, @"Time" : [self getCurrentLocalTime]
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
569 次 |
最近记录: |