2013-12-09 5 views
0

Действительно новый к этому и не могу найти решение этой проблемыНет видимых @interface для «CompCost» заявляет селектор

" No visible @interface for 'CompCost' declares the selector " occurs here 
logicForCompCost setAmountTermin:costTermin and for the whole segment 

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

CompPost.m

#import "CompCost.h" 
#import "AssEmployeeCost.h" 
#import "EmplyeeCost.h" 
#import "ResearchCost.h" 

@implementation CompCost 

-(void) AddAllCompanyCostInformation:(NSNumber *) costTermin 
        withTotalITCost:(NSNumber *) costIT 
        withTotalTeleCost:(NSNumber *) costTele 
        withTotalCleanCost:(NSNumber *) costClean 
        withTotalElCost:(NSNumber *) costEl 
        withTotalSuppCost:(NSNumber *) costSupp 
        withTotalElseCost:(NSNumber *) costElse; 
{ 

    CompCost *logicForCompCost = [[CompCost alloc]init]; 

    [logicForCompCost setAmountTermin:costTermin]; 
    [logicForCompCost setAmountIT:costIT]; 
    [logicForCompCost setAmountTele:costTele]; 
    [logicForCompCost setAmountClean:costClean]; 
    [logicForCompCost setAmountEl:costEl]; 
    [logicForCompCost setAmountSupp:costSupp]; 
    [logicForCompCost setAmountElse:costElse]; 

    if (!_totalCostComp) { 
     _totalCostComp = [[NSMutableArray alloc]init]; 

    } 

    [_totalCostComp addObject:logicForCompCost]; 

} 
@end 

и CompCost.H

// 
// CompCost.h 
// Signium International 
// 
// Created by Simon Z. Kaczmarek on 09/12/13. 
// Copyright (c) 2013 Simon Z. Kaczmarek. All rights reserved. 
// 

#import <Foundation/Foundation.h> 

@interface CompCost : NSObject 

@property (nonatomic, strong)NSMutableArray* totalCostComp; 

-(void) AddAllCompanyCostInformation:(NSNumber *) costTermin 
        withTotalITCost:(NSNumber *) costIT 
        withTotalTeleCost:(NSNumber *) costTele 
        withTotalCleanCost:(NSNumber *) costClean 
        withTotalElCost:(NSNumber *) costEl 
        withTotalSuppCost:(NSNumber *) costSupp 
        withTotalElseCost:(NSNumber *) costElse; 


@end 

Надежда кто-то может помочь. Саймон

ответ

0

Добавить все эти сигнатуры методов к вашим CompCost.h:

-(void)setAmountTermin:(NSNumber*)amount; 

Этот ответ предполагает, что метод тело существует в папке CompCost.m ...


Edit: Я просто заметив, что вы пытаетесь вызвать эти методы с CompCost.m. Если вы хотите, чтобы эти методы были приватными методами, вам необходимо добавить их в CompCost.m и их не нужно добавлять в CompCost.h.


"Нет видимых @interface для 'CompCost' объявляет селектор" происходит здесь logicForCompCost setAmountTermin: costTermin и для всего сегмента

Ваша ошибка говорит: «Эй, ты «пытаюсь вызвать метод, который не существует». Вам нужно написать этот метод. logicForCompCost имеет тип CompCost. Для этого нужен видимый селектор с именами методов, которые вы пытаетесь вызвать. Поскольку мы работаем в файле CompCost.m, вы можете написать общедоступный @interface.h) или частный @interface.m), и он очистит эту ошибку. Вам все равно придется писать тела метода.


В качестве альтернативы, если вы добавите эти вещи как @properties, вы не должны писать методы. Например:

@property (nonatomic, strong) NSNumber* amountTermin; 

Это создает amountTermin как @property (может быть публичным или частным порядком, в зависимости от того, как вы это делаете), и создает setAmountTermin метод, который принимает NSNumber* и присваивает его amountTermin и создает метод amountTermin который возвращает amountTermin (как NSNumber*). Вы также можете просто получить amountTermin с использованием точечной нотации, если используете @property.


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

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