黑马程序员 oc随记 写一个手动内存释放

本文介绍了一个使用Objective-C编写的简单程序示例,演示了如何创建并管理不同类型的对象,包括商品、买家和卖家等,并详细展示了内存管理的过程,如对象的创建与释放,以及在实践中遇到的一个关于拼写错误导致的内存泄漏问题。

真要命,半天找不到内存泄漏的原因,结果发现是自己把一个类的字母少写了,郁闷。

#import <Foundation/Foundation.h>
#import "goods.h"
#import "selfer.h"
#import "buyer.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        buyer *b=[buyer new];
        goods *g=[goods new];
        selfer *s=[selfer new];
        b.name=@"买家";
        b.age=19 ;
        b.high=183;
        s.name=@"卖家";
        s.age=22;
        s.high=155;
        g.name=@"巧克力";
        g.kg=1.23;
        g.price=5;
        
        [s setGoods:g];
        [g release];
        [s release];
        [b release];
        
    }
    return 0;
}

#import <Foundation/Foundation.h>
typedef struct {
    int year;
    int month;
    int day;
    
}producedate;
typedef struct {
    int year;
    int month;
    int day;
    
}expiredate;
@interface goods : NSObject
@property (nonatomic,retain)NSString* name;
@property (nonatomic,assign)int price;
@property (nonatomic,assign)float kg;
@property (nonatomic,retain)NSString* image;
@property (nonatomic,assign ) producedate producedate;
@property (nonatomic,assign) expiredate expiredate;
@end

#import "goods.h"

@implementation goods
-(void)dealloc{
    NSLog(@"商品被买家带走了");
    [_name release];
    [_image release];
    [super dealloc];
}


@end

#import "person.h"
#import "goods.h"
@interface selfer : person
{
    goods *_goods;
}
@property(nonatomic,retain)goods *goods;
-(void)zhanshi;
@end

#import "selfer.h"

@implementation selfer
-(void)dealloc{
    
    [_goods release];
    NSLog(@"卖家走了");
    [super dealloc];
}

-(void)zhanshi{
    NSLog(@"商品名称:%@,商品价格:%d,商品重量%2f;商品生产日期:%d年-%d月-%d日;商品过期日期:%d年-%d月-%d日;",_goods.name,_goods.price,_goods.kg,_goods.producedate.year,_goods.producedate.month,_goods.producedate.day,_goods.expiredate.
          year,_goods.expiredate.month,_goods.expiredate.day);
}

@end

#import "person.h"

@interface buyer : person

@end

#import "buyer.h"

@implementation buyer
-(void)dealloc{
    NSLog(@"买家走了");
    [super dealloc];
}


@end

#import <Foundation/Foundation.h>
typedef enum {ksexman,ksexwomen}sex;
@interface person : NSObject
{
    sex *_sex;
    NSString *_name;
    int _age;
    int _high;
}
@property(nonatomic,assign) sex *sex;
@property(nonatomic,retain) NSString *name;
@property(nonatomic,assign) int age;
@property(nonatomic,assign) int high;
@end

#import "person.h"

@implementation person
-(void)dealloc{
    NSLog(@"sdasdasd");
    [_name release];
    [super dealloc];
}
@end


内容概要:本文围绕“基于改进秃鹰算法的微电网群经济优化调度”展开研究,利用Matlab代码实现优化算法的仿真与复现。研究重点在于通过改进的秃鹰搜索算法(Bald Eagle Search Algorithm, BESA)解决微电网群在运行过程中的经济调度问题,提升算法的收敛速度与全局寻优能力,以实现对分布式能源、储能系统及负荷的高效协调管理。文中详细阐述了微电网群的系统架构、数学建模过程、目标函数设计(如运行成本最小化、碳排放降低等),并结合智能优化算法进行求解,验证了改进算法相较于传统方法在调度精度和效率方面的优越性。同时,研究还探讨了算法在多场景下的适应性,为微电网群的智能化、低碳化运行提供了技术支持与实践参考。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事微电网、智能优化算法相关工作的工程技术人员。; 使用场景及目标:① 学习并掌握改进秃鹰算法在复杂优化问题中的应用方法;② 实现微电网群经济调度模型的构建与求解;③ 对比不同智能算法在电力系统优化中的性能表现;④ 为科研论文复现、课题研究或工程项目提供算法支持与代码参考。; 阅读建议:建议读者结合文中提供的Matlab代码逐模块分析,重点关注算法改进策略与调度模型的耦合实现方式,同时可尝试在不同参数设置或场景条件下进行仿真实验,以加深对算法性能与调度效果的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值