Как работают NSEntityDescription и NSAttributeDescription? - PullRequest
1 голос
/ 21 февраля 2011

Я пытаюсь понять, как работают эти вещи: NSEntityDescription, NSAttributeDescription, attributeType.

Я думаю, что эти несколько строк кода работают, так как я получаю то, что ожидаю от значения X. Может кто-нибудь сказать мне, как я должен изменить внутреннюю часть цикла, то есть строку: X ++; чтобы получить имена и тип свойств в сущности: «myentity»?

//::::::::::::::::::::::::::: EXPERIMENT    
MeDaSyAGAppDelegate *TheAppDelegate=[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *TheContext=[TheAppDelegate managedObjectContext];
NSEntityDescription *TheEntityDesc;
TheEntityDesc=[NSEntityDescription entityForName:@"myentity" inManagedObjectContext:TheContext];
int X=0;
NSDictionary *attribs=[TheEntityDesc attributesByName];
for (NSAttributeDescription *eachA in [attribs allValues]) {
    X++;
}       
[self showMessageBox:[NSString stringWithFormat:@"X = %d.",X]];
//::::::::::::::::::::::::::: EXPERIMENT

1 Ответ

2 голосов
/ 22 февраля 2011

Первый: отформатируйте ваш код. Смотри ниже.

Второе: попробуйте сделать это:

NSLog(@"%@",eachA.name);//The name
NSLog(@"%d",[eachA attributeType])//The type, this is an integer
NSLog(@"%@",[eachA attributeValueClassName]);//Class name receiver

См .: Документы класса NSAttributeDescription

Форматирование: это выглядит лучше. (Атрибуты начинаются со строчных букв и используют пробелы)

//::::::::::::::::::::::::::: EXPERIMENT    
MeDaSyAGAppDelegate *theAppDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *theContext = [TheAppDelegate managedObjectContext];
NSEntityDescription *theEntityDesc = [NSEntityDescription entityForName:@"myentity" inManagedObjectContext:TheContext];
int X = 0;
NSDictionary *attribs = [theEntityDesc attributesByName];
for (NSAttributeDescription *eachA in [attribs allValues]) {
    X++;
}       
[self showMessageBox:[NSString stringWithFormat:@"X = %d.", X]];
//::::::::::::::::::::::::::: EXPERIMENT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...