main.m文件

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        Person *xw = [Person new];
        [xw needHouse:@"小区房"];
    }
    return 0;
}

Agent.h

#import <Foundation/Foundation.h>

@protocol rentHouseDelegate<NSObject>
- (void) rentHouseDidFinished:(NSString *)result;
@end
@interface Agent : NSObject
@property (nonatomic,assign) id <rentHouseDelegate>delegate;
- (NSString *)rentHouse;
@end

Agent.m

#import "Agent.h"

@implementation Agent
- (NSString *)rentHouse{
    if (self.delegate != nil) {
        NSString *result = @"房子找到了,为**小区3栋405";
        [self.delegate rentHouseDidFinished:result];
        return result;
    }
    return nil;
}

@end

Person.h

#import <Foundation/Foundation.h>
#import "Agent.h"
@interface Person : NSObject<rentHouseDelegate>
- (void) needHouse:(NSString *)require;

@end

Person.m

#import "Person.h"

@implementation Person
- (void)needHouse:(NSString *)require{
    //1.找到中介(需要导入中介类)
    Agent *agent = [Agent new];
    //2.告诉中介我是谁,(在这里就需要在中介类定义一个属性进行记录)
    agent.delegate = self;
    //3.中介去租房子,(在这里需要在中介类里面定义一个租房子的方法)
    [agent rentHouse];
}
- (void)rentHouseDidFinished:(NSString *)result{
    NSLog(@"%@",result);
}
@end