Skip to content

Commit 3d531ba

Browse files
committed
小优化
小优化
1 parent d770e57 commit 3d531ba

File tree

3 files changed

+29
-24
lines changed

3 files changed

+29
-24
lines changed

MJAppTools/Models/MJMachO.m

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,9 @@ + (instancetype)machOWithFileHandle:(NSFileHandle *)handle
2424
- (instancetype)initWithFileHandle:(NSFileHandle *)handle
2525
{
2626
if (self = [super init]) {
27-
// 开始的偏移
28-
unsigned long long beginOffset = handle.offsetInFile;
29-
30-
// magic
31-
uint32_t magic = [handle mj_readUint32];
32-
33-
// 恢复偏移
34-
[handle seekToFileOffset:beginOffset];
35-
27+
uint32_t magic = [handle mj_staticReadUint32];
3628
if (magic == FAT_CIGAM || magic == FAT_MAGIC) { // FAT
37-
[self setupFat:handle bigEndian:magic == FAT_CIGAM];
29+
[self setupFat:handle];
3830
} else {
3931
[self setupMachO:handle];
4032
}
@@ -102,13 +94,14 @@ - (void)setupMachO:(NSFileHandle *)handle
10294
}
10395
}
10496

105-
- (void)setupFat:(NSFileHandle *)handle bigEndian:(BOOL)bigEndian
97+
- (void)setupFat:(NSFileHandle *)handle
10698
{
10799
self.fat = YES;
108100

109101
// fat头
110102
struct fat_header header;
111103
[handle mj_readData:&header length:sizeof(struct fat_header)];
104+
BOOL bigEndian = (header.magic == FAT_CIGAM);
112105

113106
// 架构数量
114107
uint32_t archCount = MJEndianConvert(bigEndian, header.nfat_arch);
@@ -123,7 +116,8 @@ - (void)setupFat:(NSFileHandle *)handle bigEndian:(BOOL)bigEndian
123116

124117
// 偏移到架构具体数据的开始
125118
[handle seekToFileOffset:MJEndianConvert(bigEndian, arch.offset)];
126-
MJMachO *machO = [[self class] machOWithFileHandle:handle];
119+
MJMachO *machO = [[[self class] alloc] init];
120+
[machO setupMachO:handle];
127121
if (machO.isEncrypted) {
128122
self.encrypted = YES;
129123
}

MJAppTools/Tools/MJPrintTools.m

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,47 +23,58 @@
2323
const NSString *MJPrintColorError = @"\033[1;31m";
2424
const NSString *MJPrintColorStrong = @"\033[1;32m";
2525

26+
#define MJBeginFormat \
27+
if (!format) return; \
28+
va_list args; \
29+
va_start(args, format); \
30+
format = [[NSString alloc] initWithFormat:format arguments:args];
31+
32+
#define MJEndFormat va_end(args);
33+
2634
@implementation MJPrintTools
2735

2836
+ (void)printError:(NSString *)format, ...
2937
{
38+
MJBeginFormat;
39+
format = [@"Error: " stringByAppendingString:format];
3040
[self printColor:(NSString *)MJPrintColorError format:format];
3141
}
3242

3343
+ (void)printWarning:(NSString *)format, ...
3444
{
45+
MJBeginFormat;
46+
format = [@"Warning: " stringByAppendingString:format];
3547
[self printColor:(NSString *)MJPrintColorWarning format:format];
48+
MJEndFormat;
3649
}
3750

3851
+ (void)printStrong:(NSString *)format, ...
3952
{
53+
MJBeginFormat;
4054
[self printColor:(NSString *)MJPrintColorStrong format:format];
55+
MJEndFormat;
4156
}
4257

4358
+ (void)print:(NSString *)format, ...
4459
{
60+
MJBeginFormat;
4561
[self printColor:nil format:format];
62+
MJEndFormat;
4663
}
4764

4865
+ (void)printColor:(NSString *)color format:(NSString *)format, ...
4966
{
50-
if (!format) return;
67+
MJBeginFormat;
5168

52-
va_list args;
53-
va_start(args, format);
54-
NSString *formatStr = [[NSString alloc] initWithFormat:format arguments:args];
5569
NSString *printStr = nil;
56-
57-
if (color) {
58-
printStr = [color stringByAppendingString:formatStr];
70+
if (color && ![color isEqual:MJPrintColorDefault]) {
71+
printStr = [color stringByAppendingFormat:@"%@%@", format, MJPrintColorDefault];
5972
} else {
60-
printStr = [MJPrintColorDefault stringByAppendingString:formatStr];
73+
printStr = [MJPrintColorDefault stringByAppendingString:format];
6174
}
62-
63-
printStr = [printStr stringByAppendingString:(NSString *)MJPrintColorDefault];
64-
6575
printf("%s", printStr.UTF8String);
66-
va_end(args);
76+
77+
MJEndFormat;
6778
}
6879

6980
@end

Release/MJAppTools

-109 KB
Binary file not shown.

0 commit comments

Comments
 (0)