2016-11-02 52 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