2011-09-26 91 views
0

時使用導航到一個PLIST我一直得到一個SIGABRT錯誤的NSDictionary接聽SIGABRT,訪問的NSDictionary

**2011-09-26 18:31:01.740 AlarmAppiPhone[3126:10d03] -[__NSCFArray _isNaturallyRTL]: unrecognized selector sent to instance 0x5cb5090 
2011-09-26 18:31:01.742 AlarmAppiPhone[3126:10d03] Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray _isNaturallyRTL]: unrecognized selector sent to instance 0x5cb5090'** 

在這條線,我editLabelTextField.text = [alarm objectForKey:ROOT_KEY];不知道爲什麼我收到此。該警報是一個NSDictionary,它使用對象的鍵來導航到我已經這樣宣佈的一個鍵,。我在另一個文件中定義了它。 plist中看起來有點像這樣,

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>Root</key> 
    <array> 
     <dict> 
      <key>label</key> 
      <string>alarm1</string> 
      <key>time</key> 
      <date>2011-09-03T07:24:20Z</date> 
     </dict> 
     <dict> 
      <key>label</key> 
      <string>alarm2</string> 
      <key>time</key> 
      <string>2011-09-03T07:24:14Z</string> 
     </dict> 
    </array> 
</dict> 
</plist> 
+0

你想在'editLabelTextField.text'中放置哪些確切的信息? – 2011-09-26 16:46:47

+0

在我的plist中,我有一個「標籤」鍵,它是一個字符串,我想把它放在我的文本框中。 – Souljacker

+0

你想要哪個'labels'?他們在一個數組中,你的例子顯示了多個。 – 2011-09-26 16:52:50

回答

2

[alarm objectForKey:@"Root"]返回NSArray,其中你想分配給哪個期待一個NSString的屬性。 (_isNaturallyRTLNSString的iOS特定專用功能。)

我假設您正在嘗試訪問label。在結構上,這樣的訪問是這樣的(你的變量alarm或許應該被稱爲alarmPlist):

NSArray *alarms = [alarmPlist objectForKey:@"Root"]; 
NSDictionary *alarm = [alarms objectAtIndex:0]; 
editLabelTextField.text = [alarm objectForKey:@"label"]; 

用不同的指標來訪問不同的報警更換0

+0

感謝我得到它,但我想objectAtIndex:0返回indexPath.row。所以我希望它是這樣的,用戶在另一個視圖中點擊單元格,下一個視圖(這個)從另一個視圖獲取indexPath.row的標籤。 – Souljacker

+0

然後用'indexPath.row'替代'0'。 – RavuAlHemio

+0

但它會從另一個視圖中找到選定的行嗎? – Souljacker