小编K_M*_*hit的帖子

写入NSOutputStream会导致高CPU使用率

在检测我的应用程序时,我发现在将数据写入输出流时CPU使用率跃升至90%.具体来说,当网络速度非常高时.当我用Timer仪器配置它时,发现大多数cpu用于NSStream委托调用.请帮助优化编写技术以降低CPU使用率.

- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
{
switch (eventCode) {

    case NSStreamEventOpenCompleted: {
        _isConnected = YES;
        if([self.delegate respondsToSelector:@selector(isFTPConnectionFoundForUpload:)])
            [self.delegate performSelector:@selector(isFTPConnectionFoundForUpload:) withObject:_isConnected?@"YES":@"NO"];
    } break;

    case NSStreamEventHasSpaceAvailable: {

            bytesWritten = [self.producerStream write:&self.buffer[0] maxLength:512];
            if (bytesWritten == -1) {
                [self stopSendWithStatus:@"Network write error"];
            }

    } break;

    case NSStreamEventErrorOccurred: {
        NSLog(@"producer stream error %@", [aStream streamError]);
        [self stopSendWithStatus:@"Stream open error"];
    } break;
    case NSStreamEventEndEncountered: {

    } break;
    default: {

    } break;
}
Run Code Online (Sandbox Code Playgroud)

}

profiling cpu-usage nsstream nsoutputstream ios

5
推荐指数
0
解决办法
120
查看次数

在iOS 8.3中获取CellID,MCC,MNC,LAC,信号强度,质量和网络

如何在ios 8.3中使用私有api获取cell id,因为之前的核心电话私有api在最新的ios sdk 8.3中不起作用.

iphone-privateapi signal-strength ios core-telephony ios8.3

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

当应用程序在iOS中使用后台位置服务时,如何隐藏状态栏消息

我希望在iOS设备上隐藏状态栏上显示蓝色的消息,当我在后台模式下使用位置服务最小化我的应用时.

ios location-services

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