小编Dav*_*ong的帖子

从IntelliJ切换到XCode时,您最想念哪些功能?

在使用IntelliJ几年之后,几个月前我就开始使用XCode,我确实错过了很多功能。XCode还不错,但是缺少一些基本的东西。

为了引发讨论,以下是我最想念的一些功能,谁知道也许来自Apple的某个人会碰到这篇文章并窃取一些想法:)

  1. 源级别的错误提示。写-编译-修复周期感觉就像回到15年前的我C早期。无需编译即可发现许多错误,并且Java IDE已经这样做了很多年。
  2. 一个体面的调试器。这有点不公平,因为到目前为止,IntelliJ的调试器是我使用过的最好的调试器,但是XCode的调试器至少落后了5年,并且Apple的开发人员比JetBrains多。
  3. 更强大的重构。我想很容易。XCode具有一些重命名功能(它们称为重构),但很少。
  4. 覆盖方法。这个真的很棒。XCode没有“ override method”命令,该命令可让您从父类或协议中选择要重写的方法。您需要转到文档或头文件并开始复制粘贴。
  5. 复制选定的行。我碰到过一些文章,这些文章通过自定义键绑定提供了解决方法,但是它们都不起作用,至少对我而言。
  6. 转到最后一个编辑点。mm!快来Apple,这是一个易于实现且非常有用的工具!
  7. 更好的快速打开功能。IntelliJ可以快速找到类/文件/文本,因此更好...

原来我的清单不胜枚举,所以我就在这里停下来...

在过渡到XCode时,您最想念哪些其他功能?

奥里

ide xcode intellij-idea

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

NSPredicateEditorRowTemplate用于日期比较

我正在构建一个NSPredicateEditor,我希望能够进行高级日期比较.

我知道我可以建立一个NSPredicateEditorRowTemplate带有rightExpressionTypeNSDateAttributeType,但我想建立的谓词必须远不止于此先进.

例如,我需要基本的比较,如:

  • dateKeypath < aDate
  • dateKeypath <= aDate
  • dateKeypath = aDate
  • dateKeypath != aDate
  • dateKeypath > aDate
  • dateKeypath >= aDate

这些基本比较很容易实现,我有这些工作.但是,我还需要进行比较,例如:

  • dateKeypath isInTheLast n days (或数周,数月,年)
  • dateKeypath isNotInTheLast n days (或数周,数月,年)
  • dateKeypath between aDate and anotherDate

我怎样才能实现这些比较?我知道我需要创建一个自定义NSPredicateEditorRowTemplate,但我没有找到任何关于如何实现这样的清晰文档.

编辑 奖励积分也可用于知道如何使这些比较成为完整的日期 - 时间(年 - 月 - 日 - 时 - 分 - 秒)比较(因为NSDateAttributeType只有年 - 月 - 日的粒度).

cocoa date objective-c nspredicateeditor

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

常数由另一个名称

首先,我已经看到了这个问题并理解为什么以下代码不起作用.那不是我的问题.

我有一个常数,它被宣布为;

//Constants.h
extern NSString * const MyConstant;

//Constants.m
NSString * const MyConstant = @"MyConstant";
Run Code Online (Sandbox Code Playgroud)

但是,在某些情况下,让常量具有更具描述性的名称更有用MyReallySpecificConstant.我希望这样做:

//SpecificConstants.h
extern NSString * const MyReallySpecificConstant;

//SpecificConstants.m
#import "Constants.h"
NSString * const MyReallySpecificConstant = MyConstant;
Run Code Online (Sandbox Code Playgroud)

显然我不能这样做(这在上面的链接问题中有解释).

我的问题是:

如何(除了类似的东西#define MyReallySpecificConstant MyConstant)我可以在多个名称下提供一个常量?

c constants objective-c

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

将NSPopUpButtonCell与NSTableView一起使用

您好我正在尝试在NSTableView中使用NSPopUpButtonCell.基本上,当您在弹出窗口中选择一个项目时,我希望它显示在表格视图列/行中.当按下弹出单元格中的项目时,我使用"tableView:setObject:forTableColumn:row"将其存储在数据源中,然后当表请求检索数据并在"tableView:objectValueForTableColumn"中设置弹出单元格的状态时:行:".请查找附上我的代码.我现在完全被困住了.我希望有人能理解它.先感谢您.

这是在控制器内部:

  //Create the table columns
  NSTableColumn *nameColumn = [[NSTableColumn alloc] initWithIdentifier:LXDetailItemName];
  NSTableColumn *dataTypeColumn = [[NSTableColumn alloc] initWithIdentifier:LXDetailItemDataType];
  NSTableColumn *deviceColumn = [[NSTableColumn alloc] initWithIdentifier:LXDetailItemDevice];

  //Data type column drop down
  NSPopUpButtonCell *dataTypeDropDownCell = [[NSPopUpButtonCell alloc] initTextCell:@"" pullsDown:YES];
  [dataTypeDropDownCell setBordered:NO];
  [dataTypeDropDownCell setEditable:YES];

  NSArray *dataTypeNames = [NSArray arrayWithObjects:@"NULL", @"String", @"Money", @"Date", @"Int", nil];
  [dataTypeDropDownCell addItemsWithTitles:dataTypeNames];
  [dataTypeColumn setDataCell:dataTypeDropDownCell];

  //Add the columns to the table
  [tableView addTableColumn:nameColumn];
  [tableView addTableColumn:dataTypeColumn];
  [tableView addTableColumn:deviceColumn]; 
    enter code here
Run Code Online (Sandbox Code Playgroud)

这是在datasource/delegate类中.

enter code here

@implementation LXTestDataSource

- (id)init
{
 self = …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nstableview nspopupbuttoncell

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

用于远程控制鼠标的Apple事件

我甚至不确定从这个问题开始......

我希望能够将鼠标单击事件发送到另一台计算机,就像用户单击该计算机一样.

我可以通过以下方式在同一台机器上完成:

 CGEventSourceRef source = CGEventSourceCreate(NULL);
 CGEventType eventType = kCGEventLeftMouseDragged;
 CGPoint mouseCursorPosition;
 mouseCursorPosition.x = point.x;
 mouseCursorPosition.y = point.y;
 CGMouseButton mouseButton = kCGMouseButtonLeft;

 CGEventRef mouseEvent = CGEventCreateMouseEvent ( source,
               eventType,
               mouseCursorPosition,
               mouseButton );
 CGEventSetType(mouseEvent, kCGEventLeftMouseDragged); // Fix Apple Bug
 CGEventPost( kCGSessionEventTap, mouseEvent );
 CFRelease(mouseEvent);
Run Code Online (Sandbox Code Playgroud)

但是我如何在其他地方发送该事件?AppleScript的?我已经阅读了AppleEvents与app-app通信的一些内容,但我想在另一台机器上生成一个系统事件?

完全不确定.

谢谢,


[编辑11/1/10 7:30a]

只是为了澄清,我不打算屏幕分享.至少我不这么认为.我有几个连接在一起的mac pro集群,每个都有4个监视器.我试图只使用一个设备来向每个节点传达"点击".因此,如果设备在节点3上,但设备插入node0,则node0需要告知节点3它需要响应点击.

谢谢,


[编辑11/4/10 9:32 am]

真?没有人能给我一个具体的代码示例,以编程方式生成Apple事件,以便在C/C++/Objc-C中的远程机器上创建鼠标事件.

macos mouse events cocoa macos-carbon

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

Xcode 4中的NSPredicateEditor

Xcode 4的谓词编辑器控件存在一些问题 - 我认为我做的一切都是正确的,而且看起来IDE本身就被破坏了.

我在我正在编写的应用程序中遇到此问题,但为了隔离它,我执行了以下操作:

使用窗口创建新项目.在XIB编辑器中,向其添加NSPredicateEditor,并添加一行.将其保留为关键路径/字符串,并添加两个关键路径 - "标题"和"编写者".使它成为案例和变音不敏感.

创建NSWindowController的子类并为谓词编辑器添加IBOutlet.

在awakeFromNib中,输入以下代码:

NSPredicate*myPredicate = [NSPredicate predicateWithFormat:@"(标题CONTAINS [CD]%@)AND(作者CONTAINS [CD]%@)",@"",@""];

[_predicateEditor setObjectValue:myPredicate];

这会在控制台中产生以下内容:

2011-04-12 15:59:37.709 PredicateTest [38419:903]警告 - 无法找到模板匹配谓词标题CONTAINS [cd]""

2011-04-12 15:59:37.710 PredicateTest [38419:903]警告 - 无法找到模板匹配谓词作者CONTAINS [cd]""

当我单击(+)按钮添加新行时,我得到以下内容:

2011-04-12 15:59:40.044 PredicateTest [38419:903]无法使用nil运算符或表达式创建比较谓词.

我是否正确地认为我在这里做错了什么,这应该有用吗?如果我更改谓词编辑器行模板远离键路径,然后将其切换回键路径,并编辑键路径列表,Xcode崩溃与内部一致性异常,这让我觉得Xcode 4可能不符合要求它涉及到谓词编辑.

有人有任何想法吗?我已经尝试在代码而不是XIB编辑器中创建NSPredicateEditor,并且无休止地搞乱无济于事.谓词编辑功能正在阻止我向商店发布应用程序,所以这有点令人烦恼.

macos cocoa objective-c nspredicateeditor xcode4

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

核心数据实体继承 - >限制?

我以为我会把这个发布到社区.我正在使用coredata,并且有两个实体.两个实体都具有层次关系.我现在注意到了相当多的复制功能,并且想知道我是否应该重新架构有一个基础机构是抽象的(HierarchicalObject),使我的实体从他们继承.

所以问题是我应该考虑这种继承的一些限制吗?阅读那里的一些帖子,我看到一些权衡,如果我的假设是正确的,请告诉我.

  1. (好)清理结构,将HierarchicalObject功能保留在一个位置.
  2. (确定)通过继承,两个对象现在最终都在同一个sqlite表中(我使用Sqlite作为后端).那么如果对象数量增加,搜索/排序可能需要更长时间?不确定这是否是一个大问题,因为在我的情况下,对象的数量应保持相当静态.
  3. (不太好)随着继承,这种关系会变得更复杂吗?(http://www.cocoadev.com/index.pl?CoreDataInheritanceIssues)

还有其他需要考虑的事项吗?

感谢您的意见.

iphone inheritance entity class-design core-data

6
推荐指数
2
解决办法
3738
查看次数

NSTimeInterval到unix时间戳

我从CMMotionManager获取 CMDeviceMotion对象.CMDeviceMotion的一个属性是时间戳,表示为NSTimeInterval(double).根据文档,这允许"亚毫秒"时间戳精度.

[motionManager startDeviceMotionUpdatesToQueue:motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) { 
  NSLog(@"Sample: %d Timestamp: %f ",counter,  motion.timestamp);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,NSTimeInterval是自上次设备启动以来计算的,对以原始形式使用它提出了重大挑战.

有没有人有一个工作代码将此NSTimeInterval转换为类似时间戳(UTC时区)的Unix?

谢谢!

timestamp nstimeinterval ios core-motion

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

圆形Rect UIButton没有边框

我正在尝试绘制一个正常的圆角矩形UIButton,但没有边框.理想情况下,我希望能够更改一些设置UIButton以禁用边框.

我的问题是,如果我将按钮类型更改为"自定义",我没有得到漂亮的蓝色选择渐变(我想保留),我不知道如何手动绘制它.

iphone cocoa-touch border objective-c uibutton

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

比较NSDate的某些组件?

我如何只比较2的年 - 月 - 日组件NSDates

iphone comparison nsdate

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