小编opt*_*ptz的帖子

Xcode 8和预处理器宏

自从最新的XCode更新8.1(Build 8B62)以来,我遇到了与预处理器宏相关的语法高亮/代码完成的奇怪问题.

他们在更新之前一直使用的XCode 8 GM种子工作得很好,但现在XCode在选择方案时无法识别正确的目标.例如,我有一个带有2个目标的控制器静态库 - 一个用于iOS,另一个用于Apple Watch.在每个我使用宏(APP/WATCH)进行平台特定操作.但是当我在APP目标中时,Xcode编辑器突出显示代码,好像它是WATCH目标,而此目标的实际代码没有突出显示也没有自动完成.Xcode似乎随机检测来自不同目标的宏.另一方面,编译器总能检测到正确的代码并且100%正常工作,因此代码没有任何问题.这只是编辑.

此外,当我启动Xcode时,代码会突出显示大约一秒钟,然后再次获取所有白色文本.删除和读取所有方案都不起作用,清除和删除派生数据也不会对此产生影响.任何人有同样的问题,甚至解决这个问题?

编辑:我玩了一些目标和宏,我发现Xcode只从一个目标获取宏并丢弃所有其他目标,无论选择什么目标.有帮助吗?

macros xcode objective-c ios c-preprocessor

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

如何在NSTableView中重新排序行?

我似乎无法找到一种快速简便的方法来简单地重新排序NSTableView(OSX,而​​不是iOS)中的行.在iOS上我会使用这两个委托方法:

// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}

// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
    MyObject *obj = [model objectAtIndex:fromIndexPath.row];
    [model removeObject:obj]; 
    [model insertObject:obj atIndex:toIndexPath.row];
}
Run Code Online (Sandbox Code Playgroud)

是否有任何快速简便的方法可以为Cocoa中的NSTableView做类似的事情?到目前为止,我只使用粘贴板找到了一些广泛的代码示例,这看起来非常类似于对我来说简单的重新排序功能.

macos cocoa objective-c nstableview

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

标签 统计

objective-c ×2

c-preprocessor ×1

cocoa ×1

ios ×1

macos ×1

macros ×1

nstableview ×1

xcode ×1