小编tas*_*ock的帖子

目前正在使用每个iOS版本的单位数量?

任何人都知道在哪里可以找到有关当前运行iOS(1-4)的每个主要版本的单位数量的统计数据.我试图决定使用仅在iOS 4中提供的功能是否谨慎.谢谢!

iphone ios4 ios

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

用数百万点绘制线的有效方法

我正在Cocoa中编写一个带有各种缩放选项的音频波形编辑器.在最宽的时候,它显示了整首歌曲的波形(视野中约1000万个样本).在最窄处,它显示了声波的像素精确表示(视图中约1千个样本).我希望能够在这些缩放级别之间平滑过渡.像Ableton Live这样的商业编辑似乎以非常便宜的方式做到这一点.

我当前的实现满足我想要的缩放范围,但效率低且不连贯.该设计很大程度上受到这篇关于使用石英绘制波形的优秀文章的启发

http://supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/

我为各种缩小级别的音频文件创建了多个CGMutablePathRef.当我完全缩小时,我使用的路径已经减少到每x千个样本一个点.当我一直放大时,我会使用包含每个样本点的路径.当我处于缩小级别之间时,我会水平缩放路径.这使它具有功能性,但仍然非常昂贵,并且在减少级别之间转换时会出现伪像.

关于我如何降低成本的一个想法是取消抗锯齿.我的编辑器中的波形是消除锯齿的,而Ableton中的波形则没有(参见下面的比较). 在此输入图像描述 在此输入图像描述

我没有看到关闭CGMutablePathRef的抗锯齿的方法.在Cocoa世界中,CGMutablePathRef是否有一个非抗锯齿的替代品?如果没有,有没有人知道一些OpenGL类或示例代码可能会让我更有效地绘制我的大线?

更新1-21-2014:现在有一个很棒的库可以完全满足我的需求:https://github.com/syedhali/EZAudio

audio cocoa waveform quartz-2d cgpath

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

运行单个黄瓜功能不会加载步骤定义

我在features/object/create_object.feature上有一个黄瓜功能.当我使用'cucumber'命令执行所有功能时,它会通过.我正在尝试使用这些命令自行执行此功能:

cucumber features/object/create_object.feature
rake features FEATURE=features/object/create_object.feature
Run Code Online (Sandbox Code Playgroud)

但是,此功能的所有步骤定义都是未定义的:

Using the default profile...
-------UUUUUUUUUUUU
Run Code Online (Sandbox Code Playgroud)

我也尝试用"--no-profile"禁用配置文件,但无济于事.提前致谢!

ruby-on-rails cucumber

17
推荐指数
2
解决办法
9248
查看次数

CALayer的反别名对角线边缘

当我使用CATransform3DRotate设置CALayer的transform属性时,图层被正确旋转.但是,图层的边缘是锯齿状的,没有消除锯齿.我读了几篇关于这个主题的帖子:

iPhone:CALayer +旋转3D +抗锯齿?

iPhone - 将视角应用于CALayer时的锯齿状边缘

我试图通过在对角层上设置以下属性来结合他们的建议

CALayer* layer = myView.layer;
layer.shadowOpacity = 0.01;
layer.edgeAntialiasingMask = kCALayerTopEdge | kCALayerBottomEdge | kCALayerRightEdge | kCALayerLeftEdge;
layer.borderWidth = 1.0;
layer.borderColor = [UIColor clearColor].CGColor;
layer.backgroundColor = [UIColor greenColor].CGColor;
Run Code Online (Sandbox Code Playgroud)

我还覆盖了drawLayer:inContext:我的对角线层的方法以确保消除锯齿:

-(void)drawLayer:(CALayer*)layer inContext:(CGContextRef)context
{
    CGContextSetAllowsAntialiasing(context, true);
    CGContextSetShouldAntialias(context, true);
    CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor);
    CGContextFillRect(context, self.bounds);
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

iphone core-animation antialiasing calayer ios

14
推荐指数
2
解决办法
8495
查看次数

iOS上的自定义EQ AudioUnit

iOS上AudioUnit的唯一影响是"iTunes EQ",它只允许您使用EQ预设.我想在我的音频图表中使用自定义的eq

我在这个问题上遇到了这个问题,看到了一个答案,建议在渲染回调中使用这个DSP代码.这看起来很有希望,人们似乎在各种平台上有效地使用它.然而,即使平坦的eq,我的实施也有很多噪音.

这是我的20行集成到Apple的"MixerHost"示例应用程序的"MixerHostAudio"类(一次性提交):

https://github.com/tassock/mixerhost/commit/4b8b87028bfffe352ed67609f747858059a3e89b

关于如何让这个工作的任何想法?整合情商的任何其他策略?

编辑:这是我遇到的失真的一个例子(使用eq flat):http: //www.youtube.com/watch?v = W_6JaNUvUjA

audio objective-c core-audio audiounit ios

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

React Native应用中的Redux数据非常慢

我将大量JSON对象存储在单个Redux变量中(约8k项,每个项的对象约1kb,总计8mb)。即使对于最琐碎的动作和减速器,Redux的调用似乎也变慢了,而实际上它们什么也没做。例如,调用此doNothing()操作和reducer会在设备上产生500ms的等待时间,而无需在调试器上运行:

// action
export const doNothing = () => {
  return {
    type: DO_NOTHING
  };
};

// reducer
export default (state = INITIAL_STATE, action) => {
  switch (action.type) {
    case DO_NOTHING: {
      return state;
    }
    default:
      return state;
  }
};
Run Code Online (Sandbox Code Playgroud)

解决这个问题的最佳尝试是通过slowlog,这是我在React组件中为Redux调用得出500毫秒数字的地方。对于较小的数据集(约500个项目),我仍然需要等待,但接近100ms。这些都在设备上,并且在模拟器和调试器上会变慢。我在一个简单的视图上用一个按钮进行测试,以排除昂贵的重新选择和重新渲染带来的麻烦。可能的麻烦是,我正在使用redux-offline它将Redux存储AsyncStorage持久化到,但是当我关闭持久性时,我的性能同样会很差。

理想情况下,我直接解决瓶颈问题,但是我也可以解决问题。我尝试将动作调用包装在中setTimeout,但这似乎延迟了我的React Native应用程序的运行速度。

在此先感谢您的任何建议!

performance reactjs react-native redux react-redux

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

将文件从NSTableView拖到其他osx应用程序

我想从NSTableView行拖动一个文件,将其复制到另一个应用程序(即Finder).我实现了本指南的前两个步骤("配置您的表视图","开始拖动操作")并认为可以解决这个问题:http: //developer.apple.com/library/mac/#documentation/Cocoa /Conceptual/TableView/Tasks/UsingDragAndDrop.html

但是,当我尝试拖动一行时,行文本跟在鼠标后面,但文件在释放时不会复制.这是我在初始化时发送到我的UITableView的内容:

#define librarySongDataType @"NSFileContentsPboardType"
- (void)awakeFromNib
{
    [self setDraggingSourceOperationMask:NSUIntegerMax forLocal:YES]; // allow interapplication drags
    [self registerForDraggedTypes:[NSArray arrayWithObject:librarySongDataType] ]; // NSFileContentsPboardType
}
Run Code Online (Sandbox Code Playgroud)

这是我在NSTableView的数据源(NSArrayController)中处理拖动的方法:

- (BOOL)tableView:(NSTableView *)aTableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard
{
    NSLog(@"writeRowsWithIndexes");
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:rowIndexes];
    [pboard setData:data forType:librarySongDataType];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

要清楚,我不是试图将文件拖到我的表视图中,我只是试图将文件拖出来.

macos cocoa drag-and-drop objective-c

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

Cocoa离开了列菜单

苹果和第三方的几个mac应用程序在左栏中都有一个菜单,通常用于过滤内容.以下是iPhoto,iCal和iTunes的一些示例.

替代文字替代文字替代文字

我没有看到与此对应的接口构建器类.这些通常是如何实施的?带定制单元格的NSTableView?是否有任何预先编写的代码来处理更复杂的方面,如折叠三角形?这看起来像一个普通的用户界面,如果我不需要,我不想重新发明轮子.

cocoa objective-c nstableview

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

在Core Data中存储负整数

我可以正确地为管理对象模型实例的属性分配和检索正整数.但是,为此属性分配负整数会将数字"4294967295"记录到我的核心数据持久性存储(xml文件).因此,当应用程序重新加载并重新实例化托管对象时,该属性显示为"4294967295".

此属性在我的DataModel中指定为Integer 32类型,其"Min Value"为"-12".我猜这与将负整数存储为字符串有关.此代码生成相同的"4294967295":

NSLog(@"Log -1: %u", -1);
=> "Log -1: 4294967295"
Run Code Online (Sandbox Code Playgroud)

在Core Data中存储负整数的正确方法是什么?

core-data objective-c nsmanagedobject

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

设计/OmniAuth:注册和登录的不同逻辑

默认色器件的授权路径(即user_omniauth_authorize_path提到这里)似乎被设计成工作都OmniAuth注册和登录。当 OmniauthCallbacksController 收到 auth 时,您的 rails 应用程序通常会使用 auth 信息来创建新用户或更新现有用户,无论用户是打算登录还是注册服务(即 Facebook)。

我的利益相关者要求对身份验证和登录采取不同的行为。如果用户单击“向 Facebook 注册”并且没有使用其 Facebook 电子邮件的帐户,则他们希望继续使用该电子邮件创建一个帐户。但是,如果用户单击“使用 Facebook 登录”并且没有包含其 Facebook 电子邮件的帐户,他们希望向用户显示一条错误消息,说明“您使用的 Facebook 帐户与我们记录中的帐户不匹配。请登录使用您的 barre3 电子邮件和密码”

这个逻辑的位置似乎在 OmniauthCallbacksController 的 Facebook 方法中。将用户的意图(“登录”或“注册”)传递到此回调方法中的最简洁方法是什么?

ruby-on-rails devise omniauth ruby-on-rails-4

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

插入字典后,NSArray变成了NSCFArray

我正在尝试将NSArray保存为NSMutableDictionary中的值.当我尝试获取我添加的内容时,它返回NSFCArray而不是NSArray:

NSArray * list = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
NSMutableDictionary * dictionary = [[NSMutableDictionary alloc] init];
for (NSString *name in list) {
    // first attempt
    [dictionary setObject:[NSMutableArray arrayWithObject:@"test"] forKey:name];
    NSLog(@"first attempt class: %@", [[dictionary valueForKey:name] class]);
    // second attempt
    NSArray * realArray = [[NSArray alloc] initWithArray:[dictionary valueForKey:name]];
    NSLog(@"second attempt class: %@", [realArray class]);
}
Run Code Online (Sandbox Code Playgroud)

我认为这是为了提高效率.但是,我需要将我的值作为NSArray返回,以调用NSFCArray没有的"count"方法.如果我不能将值存储在字典中作为NSArray,我如何从NSFCArray转换为NSArray?

objective-c nsdictionary nsarray nsmutabledictionary

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