Работает в OS 2.2.1, но не в OS 3.0: Ошибка: тип средства доступа?

Кто-нибудь имеет какие-либо идеи, почему этот код генерирует эти ошибки в ОС 3.0, а не ОС 2.2.1?

NSUInteger aCount = [serverBrowser.servers count];  

ошибка: тип средства доступа не соответствует типу свойства 'серверы'

ServerBrowser.h определен ниже, а serverBrowser синтезирован в .m выше.

#import <Foundation/Foundation.h>

    @class ServerBrowserDelegate;

    @interface ServerBrowser : NSObject {
      NSMutableArray* servers;
      id<ServerBrowserDelegate> delegate;
    }

    @property(nonatomic,readonly) NSArray* servers;


    @end

Заранее спасибо за помощь. Очень признателен. Иордания

13.10.2009 01:46:50
1 ОТВЕТ
РЕШЕНИЕ

Это связано с тем, что вы предоставляете @propertyдля serversмассива как NSArray*, но объявляете переменную резервного копирования как NSMutableArray*. Компилятор OS 3.0 может просто прийти с более строгими настройками компилятора, чем 2.2.1. Попробуйте преобразовать в:

@property(nonatomic,readonly) NSMutableArray *servers;
0
13.10.2009 01:53:19
абсолютно верно, я не могу поверить, что я не уловил это (улыбается). Я зациклился на коде, так как он работал в 2.2.1. Хороший @Tim. Ура!
Jordan 13.10.2009 02:07:26