2011-06-29 20 views
4
獲取一個NSString

我所以閱讀周圍,沒有谷歌這個公平一點,但我沒能找到一個答案,我的問題......從NSCFString

我有一個NSDictionary這是返回NSCFString's什麼我需要的是一個NSString,所以我可以使用它的doubleValue函數。我不能爲我的生活弄清楚如何將NSCFStringNSString s。我試過沒有成功如下:

NSString* lng_coord = (NSString*)[dict objectForKey:key]; 
      if ([lng_coord class] == [NSString class]) 
       NSLog(@"lng coord is an exact match with NSString class"); 
      else { 
       NSLog(@"lng coord doesn't match NSString class"); 
       NSLog(@"The class of lng_coord is %@", [[dict objectForKey:key] class]); 
      } 
      NSLog(@"%@", lng_coord); 
      [CelebsAnnotation setLongitude:[lng_coord doubleValue]]; 

這是從控制檯輸出:

lng coord doesn't match NSString class 
The class of lng_coord is NSCFString 
49.2796758 
+1

[ç的OBJ返回NSString的類NSCFString(可能重複http://stackoverflow.com/questions/393873/obj-c-nsstring-returning-class-nscfstring) – PengOne

回答

11

NSCFStringNSString私有子類,你可以使用它作爲一個。

因爲這樣的模式,比如class clusters的,你不應該在這裏直接比較的類 - 使用-isKindOfClass:代替:

if ([lng_coord isKindOfClass:[NSString class]]) { 
    // ... 
+0

這對我不起作用!幫幫我! – 11684

+0

@ 11684:更多詳情?你有沒有檢查過你是在處理NSCFStrings? –

相關問題