#import <Foundation/NSString.h>
@interface NSString (PathComp)
- (NSString *)stringByAppendingPathComponents:(NSString *)str, ...
NS_REQUIRES_NIL_TERMINATION;
@end
#import "NSString+PathComp.h"
#import <Foundation/NSPathUtilities.h>
#import <stdarg.h>
@implementation NSString (PathComp)
- (NSString *)stringByAppendingPathComponents:(NSString *)str, ... {
va_list varglist;
NSString *work, *comp;
if (str == nil)
return self;
work = [self stringByAppendingPathComponent:str];
va_start(varglist, str);
while ((comp = va_arg(varglist, NSString *)) != nil)
work = [work stringByAppendingPathComponent:comp];
va_end(varglist);
return work;
}
@end
//
// main.m
// Test
//
// Created by zhen7216 on 2017/3/7.
// Copyright © 2017年 chenzhen. All rights reserved.
//
#import <Foundation/NSString.h>
#import <Foundation/NSPathUtilities.h>
#import <Foundation/NSAutoreleasePool.h>
#import "NSString+PathComp.h"
#import <stdio.h>
int main(void)
{
NSString *pict = @"Pictures";
NSString *homedir, *s;
@autoreleasepool {
homedir = NSHomeDirectory();
printf("%s\n", [homedir UTF8String]);
s = [homedir stringByAppendingPathComponent:pict];
printf("%s\n", [s UTF8String]);
s = [homedir stringByAppendingPathComponents:pict, @"tmp", nil];
printf("%s\n", [s UTF8String]);
s = [homedir stringByAppendingPathComponents:@"Desktop",pict, @"Wallpaper", nil];
printf("%s\n", [s UTF8String]);
}
return 0;
}