2014-02-16 2 views
0

Я создал класс, и я пытаюсь получить доступ к некоторому свойству внутри открытого метода, но я не могу, компилятор не разрешает, мне действительно нужно некоторое Помогите. это мой код, я рассчитываю на вас, ребята. Есть ли другие способы сделать это?Как получить доступ к объекту в объекте общедоступного метода c

заголовочных файл

@interface DirController : NSObject 



+ (void)startCreate; 
+(DirController *)getInstace; 



@property (strong, nonatomic) NSString * nomeDiretorio; 
@property (strong, nonatomic) NSString * enderecoUrl; 
@property (strong, nonatomic) NSString * nomeUsuario; 
@property (strong, nonatomic) NSString * senha; 
//@property (strong, nonatomic) NSString * nomeCliente; 
@property (nonatomic, assign, readonly) BOOL    isCreating; 
@property (nonatomic, strong, readwrite) NSOutputStream * networkStream; 

файл .m

+ (void)startCreate 
{ 
    BOOL     success; 
    NSURL *     url; 

    // assert(self.networkStream == nil);  // don't tap create twice in a row! 

    // First get and check the URL. 

    url = [[NetworkManager sharedInstance] smartURLForString:self.enderecoUrl]; 
    success = (url != nil); 

    if (success) { 
     url = CFBridgingRelease(
           CFURLCreateCopyAppendingPathComponent(NULL, (__bridge CFURLRef) url, (__bridge CFStringRef) self.nomeDiretorio, true) 
           ); 
     success = (url != nil); 
    } 

    // If the URL is bogus, let the user know. Otherwise kick off the connection. 

    if (! success) { 

    } else { 



     self.networkStream = CFBridgingRelease(
               CFWriteStreamCreateWithFTPURL(NULL, (__bridge CFURLRef) url) 
               ); 
     assert(self.networkStream != nil); 

     if ([self.nomeUsuario length] != 0) { 
      success = [self.networkStream setProperty:self.nomeUsuario forKey:(id)kCFStreamPropertyFTPUserName]; 
      assert(success); 
      success = [self.networkStream setProperty:self.senha forKey:(id)kCFStreamPropertyFTPPassword]; 
      assert(success); 
     } 

     self.networkStream.delegate = self; 
     [self.networkStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
     [self.networkStream open]; 

     // Tell the UI we're creating. 

     [self createDidStart]; 
    } 
} 

ответ

1

Это потому, что метод startCreate не метод экземпляра, то .. метод класс Вы не можете получить доступ к переменным экземпляра внутри методов класса

Вы можете изменить метод starCreate быть методом экземпляра, заменив знак + для - знак в начале метода (предполагается, что вы знать, что вы делаете).

0

Метод класса только что; метод на классе. Нет экземпляра для хранения состояния внутри.

Вам нужно создать экземпляр вашего класса (т.е. MyClass *myThing = [[MyClass alloc] init];, конвертировать ваши методы класса к методам экземпляра, а затем она будет работать нормально.

Смежные вопросы