小编dam*_*ian的帖子

如何在iOS上检测双核CPU?

我的应用程序使用一个NSOperationQueue缓存后台线程中的缩略图图像.在iPad2上,我可以将并发任务计数限制推高到5或6,但在像iPad 1这样的单核设备上,这会使用户界面暂停.

所以,我想检测一个双核设备(目前只有iPad 2)并适当调整并发限制.我知道我不应该检查型号,而是设备功能.那么我应该寻找什么设备功能,这会告诉我cpu是否是双核心的?

ios

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

串口:write()限制?

我正在开发一个项目,发送串行数据来控制LED灯的动画,这需要与动画引擎保持同步.似乎有一个大的串行写缓冲区(OSX(POSIX)+ FTDI芯片组usb串行设备),因此无需手动限制对write()的调用,软件可以提前几秒钟点亮.

目前我手动将串行写入速度限制为波特率(8N1 =每8字节数据10字节串行帧,19200 bps串行 - >每秒最多1920字节),但我遇到动画漂移不同步的问题随着时间的推移 - 它开始很好,但10分钟后动画和灯光之间有一个明显的(100毫秒+)滞后.

这是限制串行写入速度的代码(每个动画帧调用一次,'过去'是当前帧的持续时间,'波特率'是bps(19200)):

void BufferedSerial::update( float elapsed )
{
    baud_timer += elapsed;

    if ( bytes_written > 1024 )
    {
        // maintain baudrate
        float time_should_have_taken = (float(bytes_written)*10)/float(baudrate);
        float time_actually_took = baud_timer;
        // sleep if we have > 20ms lag between serial transmit and our write calls
        if ( time_should_have_taken-time_actually_took > 0.02f )
        {
            float sleep_time = time_should_have_taken - time_actually_took;
            int sleep_time_us = sleep_time*1000.0f*1000.0f;
            //printf("BufferedSerial::update sleeping %i ms\n", sleep_time_us/1000 );
            delayUs( sleep_time_us );

            // subtract …
Run Code Online (Sandbox Code Playgroud)

c c++ synchronization posix serial-port

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

尝试创建边距时,UILabel textRectForBounds无效

我试图缩进UILabel中的文本,在显示背景颜色的文本周围留下一些边距.根据这里的建议,我已经覆盖textRectForBounds:limitedToNumberOfLines:如下:

- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines
{
    CGRect intermediate = CGRectMake(bounds.origin.x+MARGIN,bounds.origin.y+MARGIN,bounds.size.width-2*MARGIN,bounds.size.height-2*MARGIN);
    return [super textRectForBounds:intermediate limitedToNumberOfLines:numberOfLines];
}
Run Code Online (Sandbox Code Playgroud)

但无论我做什么,文本都会紧贴矩形的左边界.好像绘图忽略了返回的CGRect的原点部分(虽然它似乎是在考虑宽度部分,好像我减少到中间的宽度,例如bounds.size.width-200textRectForBounds返回的矩形适当地缩小并且文本被绘制成一个很瘦的专栏).

那么:我需要做些什么UILabel来使绘图尊重textForRectBounds-returned-rect的origin.x和origin.y?我宁愿不重写UILabeldrawTextInRect,如果我能帮助它.

更新:这是很久以前的事了,我不记得为什么另一个问题不适合我.我相信这是因为我试图拥有UILabel多行,而这里的解决方案并不适用.

iphone margins uilabel ios

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

ALAssetRepresentation URL'持久'生命周期?

快速提问:ALAssetRepresentation URL(其"url"属性)保证指向同一资产的时间有多长?

文档将其描述为"持久性",但这是否意味着在单个同步中持续存在,在添加新照片之前持续存在,持久直到旧照片被删除,或者什么?如果我使用他们的ALAssetRepresentation网址建立一个将相机胶卷/照片库中的照片元素与我的应用程序中的数据相关联的数据库,即使照片被移动或重命名,这些关联是否会继续有效?

ios assetslibrary

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

从命令行守护程​​序使用MLMediaLibrary时出现XPC错误

我正在编写一个命令行守护程​​序来从iPhoto中读取图像.

我可以MLMediaLibrary使用Xcode项目创建工具从一个成熟的Cocoa应用程序初始化并加载一个罚款.但是,当我尝试从命令行工具(也在Xcode中创建)中执行相同操作时,Xcode控制台窗口中会出现以下错误:

MLMediaLibrary error obtaining remote object proxy: Error Domain=NSCocoaErrorDomain Code=4097 "Couldn’t communicate with a helper application."
Run Code Online (Sandbox Code Playgroud)

如何MLMediaLibrary从命令行工具访问?

macos iphoto

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

麻烦使用arc-IOS使NSTimer无效

这个问题已被要求在堆栈溢出时死亡,我已经看到过多的答案,但不知怎的,我仍然遇到麻烦.

无论如何,我在我的视图中分配了一个NSTimer,所以加载:

NSTimer *oneSecondTicker = [[NSTimer alloc] init]; 
oneSecondTicker = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateLabelsWithOneSecondTicker) userInfo:nil repeats:YES]; 
self.dateForTimeLabel = [NSDate date];
Run Code Online (Sandbox Code Playgroud)

选择器的方法是:

-(void) updateLabelsWithOneSecondTicker {
    if(self.dateForTimeLabel != nil)  
    {
        self.lblTime.text = [NSString stringWithFormat:@"%f", fabs([self.dateForTimeLabel timeIntervalSinceNow])];
    }
}
Run Code Online (Sandbox Code Playgroud)

这种方法基本上每秒更新一个标签,给我一个定时器/秒表的东西.

我还有一个开始/暂停按钮,当按下暂停时会执行以下操作:

[oneSecondTicker invalidate];
oneSecondTicker = nil;
Run Code Online (Sandbox Code Playgroud)

如果按下按钮再次启动,方法是:

NSTimer *oneSecondTicker = [[NSTimer alloc] init];
oneSecondTicker = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateLabelsWithOneSecondTicker) userInfo:nil repeats:YES];    

self.dateForTimeLabel = [NSDate date];
Run Code Online (Sandbox Code Playgroud)

我没有调用保留到计时器,它没有属性,也没有合成.然而,它在界面中声明.

为了解决这个问题,按下每个暂停/开始按钮会发生什么,定时器不会失效,时间标签会更快更快地更新,这让我相信多个定时器由于某种原因而存在.(显然,在这些方法中还没有找到真正计时器的功能,这只是让我的NSTimer工作的一个测试).

怎么会这样?

nstimer ios

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

我可以让 Visual Studio 忽略异常的特定*实例*吗?

我正在使用第 3 方代码,该代码抛出并捕获 aNullReferenceException作为其正常、正确操作的一部分。我希望能够告诉 Visual Studio 忽略此实例(即忽略NullReferenceException从此 .cs 文件 + 行号抛出的 s),但继续在其他抛出的NullReferenceException情况下中断。

这可能吗?

编辑:我所说的第 3 方代码是指属于项目一部分的源代码,但我不拥有也不会修改。例如,我不能使用任何依赖于 VS用户代码定义的东西,因为这也算作用户代码。项目的规模意味着这个细节是我无法控制的。出于类似的原因,我不想添加[DebuggerHidden].

c# visual-studio visual-studio-debugging

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