PLIST

0

내가 스위프트에 목표 C에서 다음 코드를 변환하는 데 어려움을 겪고있어 목표 C로 코딩 된 레이 Wenderlich 튜토리얼 다음은 PLIST에서 테이블을 채우는있어 데이터가있는 테이블을 채우기 :PLIST

var sortDescriptor:NSSortDescriptor = NSSortDescriptor(key: nil, ascending: true, selector: "localizedCompare:") 

내가 다음 줄 I를 시도 할 때 내가 전화

에서 다음

그리고 "를 추가 인수 '선택'을 알리는 컴파일러 오류가있어 다음과 같이 I 변환

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    { 
    NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES selector:@selector(localizedCompare:)]; 
    NSArray* sortedCategories = [self.articleDictionary.allKeys sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 

     NSString *categoryName = [sortedCategories objectAtIndex:section]; 

     NSArray *currentCategory = [self.articleDictionary objectForKey:categoryName]; 

return [currentCategory count]; 
} 

Xcode를 사용하여 다음과 같이 제안하십시오.

let sortedCategories:NSArray = [articleDictionary.allKeys.sort(<#isOrderedBefore: (AnyObject, AnyObject) -> Bool##(AnyObject, AnyObject) -> Bool#>)] 

의견이 있으십니까?

답변

0

문제는 당신이 얻는 오류 메시지 (스위프트의 오류 메시지가 너무 빠르지 않음)에도 불구하고 키에 nil을 전달하는 것 같습니다. 당신이 키가 필요하지 않는 경우에, 당신은 sortedArrayUsingSelector을 사용해야 상승 : 선택하는 대신,

let keys: NSArray = articleDictionary.allKeys 
var sortedCategories = keys.sortedArrayUsingSelector("localizedCompare:") 

또한 작동하는 것 같다 당신은 sortDescriptorWithKey의 핵심 매개 변수에 빈 문자열을 (오히려 무기 호보다) 전달하는 경우 :