标签: nsfilehandle

NSFileHandle -readDataOfLength: 返回自动释放的 NSData 吗?

当我调用readDataOfLength:实例时NSFileHandle,是否需要释放返回的NSData?目前我还没有,但我想摆脱这个挥之不去的疑虑。

cocoa objective-c nsdata nsfilehandle

1
推荐指数
1
解决办法
1589
查看次数

我正在尝试查找文件大小.但我的长度是零到零

我正在尝试查找文件大小.

 NSFileHandle *output = [NSFileHandle fileHandleForWritingAtPath:self.finalPath]; 
//seek to begin of the file
[output seekToFileOffset:0];
NSData *mydata = [output availableData];
NSLog(@"length: %d", [mydata length]);
Run Code Online (Sandbox Code Playgroud)

但我的长度是零到零.为什么?

nsfilemanager nsfilehandle ios

1
推荐指数
1
解决办法
4261
查看次数

Objective C 将标准输出打印到 UIAlertView

我有一个使用 打印到 stdout 的 C 函数fprintf,并且我试图在UIAlertView. 我的代码如下:

NSFileHandle *stdoutFileHandle = [NSFileHandle fileHandleWithStandardOutput];
NSData *stdoutData = [stdoutFileHandle availableData];
NSString *stdoutString = [[NSString alloc] initWithData:stdoutData encoding:NSASCIIStringEncoding];

UIAlertView *stdoutAlert = [[UIAlertView alloc] initWithTitle:@"STDOUT OUTPUT" message:stdoutString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[stdoutAlert show];
Run Code Online (Sandbox Code Playgroud)

当我运行我的代码时,出现以下错误。

由于未捕获的异常“NSFileHandleOperationException”而终止应用程序,原因:“[NSConcreteFileHandle availableData]:错误的文件描述符”

[stdoutFileHandle availableData]当我替换为时,我收到了等效的错误[stdoutFileHandle readDataToEndOfFile]

stdout objective-c nsfilehandle ios

1
推荐指数
2
解决办法
1812
查看次数

在swift 2中将新字符串附加到txt文件

我曾经在java中进行编码,但现在我想使用swift 2将我的应用程序移动到iOS.所以我想要一种方法将新行中的文本附加到app文档中的现有txt文件中.

我搜索并尝试了很多方法,但它全部覆盖到新的txt文件

在java中我使用了这个方法

PrintWriter out=null;
        try {
            out=new PrintWriter(new FileWriter("file.txt",true));

                    out.println("some txt"}


                out.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
Run Code Online (Sandbox Code Playgroud)

nsfilehandle ios swift2

1
推荐指数
2
解决办法
5016
查看次数

使用NSOutputstream有什么好处?

我需要从Internet下载大文件,并将其保存到本地磁盘.

首先,我保存这样的数据:

- (void)saveToLocalFile:(NSData *)data withOffset:(unsigned long long)offset{

    NSString* localFile = [self tempLocalFile];
    dispatch_async(mFileOperationQueue_, ^{

        NSFileHandle* fileHandle = [NSFileHandle fileHandleForWritingAtPath:localFile];
        if (fileHandle == nil) {
            [data writeToFile:localFile atomically:YES];
            return;
        }
        else {
            [fileHandle seekToFileOffset:offset];
            [fileHandle writeData:data];
            [fileHandle closeFile];
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

由于AFNetworking使用NSOutputstream将数据保存到本地是这样的:

NSUInteger length = [data length];
    while (YES) {
        NSInteger totalNumberOfBytesWritten = 0;
        if ([self.outputStream hasSpaceAvailable]) {
            const uint8_t *dataBuffer = (uint8_t *)[data bytes];

            NSInteger numberOfBytesWritten = 0;
            while (totalNumberOfBytesWritten < (NSInteger)length) {
                numberOfBytesWritten = …
Run Code Online (Sandbox Code Playgroud)

nsfilemanager nsfilehandle nsoutputstream ios afnetworking

0
推荐指数
1
解决办法
956
查看次数