stanford cs193p - PrintIntrospectionInfo - назначение раздела 4 1b - PullRequest
0 голосов
/ 19 сентября 2009

У меня проблемы с разделом 4 Стэнфордского класса iphone по заданию 1b.

У меня проблемы с пониманием, как я буду строить массив и что ожидание назначения.

Должен ли массив быть "глобальной" переменной? Где я должен это определить? Будут ли каждая из других подфункций добавлять свои переменные в массив? Функция PrintIntrospectionInfo только для перечисления через и распечатать всю интроспективную информацию?

Где я могу прочитать о том, что они просят в этом назначение? О чем мне читать?

Я не посещаю занятия, так может кто-нибудь прислать мне свой код? уроки строятся друг на друге, и я хочу продолжать.

Вот задание:

Objective-C имеет ряд возможностей, которые дополняют его динамические объектно-ориентированные возможности. Много из этих средств имеют дело с определением и использованием возможностей объекта во время выполнения. Создайте изменяемый массив и добавляйте в него объекты различных типов. Создать экземпляр классов мы использовали в другом месте этого назначения для заполнения массива: NSString, NSURL, NSProcessInfo, NSDictionary и т. Д. Создайте несколько экземпляров NSMutableString и поместите их в массив.
Не стесняйтесь создавать и другие объекты.
Выполните итерации по объектам в массиве и сделайте следующее: 1. Напечатайте имя класса объекта. 2. Журнал, если объект является членом класса NSString. 3. Журнал, если объект является видом класса NSString. 4. Журнал, если объект отвечает на селектор "lowercaseString". Страница 5 из 6 5. Если объект отвечает на селектор lowercaseString, запишите результат запроса объект для выполнения этого селектора (используя executeSelector :) CS193P Назначение 1B Кукла весна 2009 / Cannistraro

Ответы [ 3 ]

2 голосов
/ 05 октября 2009

Вы можете найти свои ответы в руководствах по какао и target-c, которые поставляются с Xcode.

#import <Foundation/Foundation.h>

void printIntrospectionInfo()
{
    NSMutableArray * array = [NSMutableArray arrayWithCapacity:5];
    [array addObject: [NSString stringWithString:@"Example NSString object"]];
    [array addObject: [NSMutableString stringWithString:@"Example NSMutableString object"]];
    [array addObject: [NSURL URLWithString:@"http://apple.com.au"]];
    [array addObject: [NSProcessInfo processInfo]];
    [array addObject: [NSDictionary dictionaryWithObject: @"DictObject" forKey: @"KeyObject"]];
    [array addObject: [NSNumber numberWithInt:123456]];

    SEL sel_lowercase = @selector(lowercaseString);

    int i;
    for (i = 0; i < [array count]; ++i)
    {
        id o = [array objectAtIndex:i];

        NSLog(@"%@", o);
        NSLog(@"Class name: %@", [[o class] className]);
        NSLog(@"Is Member of NSString: %@", ([o isMemberOfClass: [NSString class]] ? @"YES" : @"NO"));
        NSLog(@"Is Kind of NSString: %@", ([o isKindOfClass: [NSString class]] ? @"YES" : @"NO"));
        NSLog(@"Responds to lowercaseString: %@", ([o respondsToSelector: sel_lowercase] ? @"YES" : @"NO"));

        if ([o respondsToSelector: sel_lowercase])
            NSLog(@"lowercaseString: %@", [o performSelector: sel_lowercase]);

        NSLog(@"===================");
    }

}


int main(int argc, const char* argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    printIntrospectionInfo();
    [pool release];
    return 0;
}
1 голос
/ 05 октября 2009

Где я могу прочитать о том, что они просят в этом задании? О чем мне читать?

Помимо локальных и глобальных проблем (местные жители лучше), прочитайте документы NSObject . Все четыре вопроса касаются того, что вы будете делать с методами, реализуемыми NSObjects.

Не забудьте также прочитать Objective-C .

1 голос
/ 19 сентября 2009

Первое задание было не столько о дизайне, сколько о ощущениях от Objective-C. Глобальная переменная это хорошо, но локальная переменная была бы намного проще.

...