2016-11-02 107 views
2

其实我已经使用这个代码NstaggedpointerString转换为字符串转换NstaggedpointerString为int

NSString *index = [responseSelectedAvailibility[i] valueForKey:@"day"]; 

     NSLog(@"String %@",index); 

     int indexDayValue = (int)index; 
     NSLog(@" index %d",indexDayValue); 

     indexDayValue = indexDayValue-1; 

    NSLog(@" index after decrementing %d",indexDayValue); 

我得到的字符串的输出是这样的

String 

    (
     1 
    ) 

现在我怎么得到这个1

+0

问题不在于将该字符串转换为int,问题是您没有在编译器中打开基本警告,因此它可以让您摆脱这种废话。 – gnasher729

+2

主要问题显然是键值陷阱。 – vadian

回答

1

取代的:

int indexDayValue = (int)index; 

与此:

int indexDayValue = [index intValue]; 

编辑:

[__NSArrayI的intValue]无法识别的选择发送到实例0x7f940053f7e0

这是因为index实际上是一个阵列,而不是一个串。请执行以下操作:

NSDictionary *dict = responseSelectedAvailibility[i]; 
NSArray *dayArray = dict[@"day"]; 
NSString *dayIndexString = [dayArray firstObject]; 
int dayIndex = [dayIndexString intValue]; 
+0

P.S.不要调用一个字符串'index',这是令人困惑的。至少它应该是'indexString' – alexburtnik

+0

[__NSArrayI intValue]无法识别的选择器发送到实例0x7f940053f7e0。得到这个错误 –

+0

@MadBurea检查更新。 – alexburtnik