小编Lut*_*ker的帖子

适用于Windows的Objective C.

在Windows平台上编写Objective-C的最佳方法是什么?

Cygwin和gcc?有没有办法可以将它集成到Visual Studio中?

沿着这些方向 - 是否有任何关于如何链接和使用Windows SDK的建议.它是一个不同的野兽,但我知道我可以在Windows DLL中编写汇编和链接,让我可以访问这些调用,但我不知道如何做到这一点,没有谷歌搜索和零碎的方向.

是否有人知道一个好的在线或书籍资源来做或解释这些事情?

windows winapi gcc cygwin objective-c

228
推荐指数
9
解决办法
20万
查看次数

在.each()完成后调用jQuery函数

在jQuery中,是否可以在调用(或任何其他类型的迭代回调)完成后调用回调触发事件..each()

例如,我想要"淡化和删除"来完成

$(parentSelect).nextAll().fadeOut(200, function() {
    $(this).remove();
});
Run Code Online (Sandbox Code Playgroud)

在做一些计算并在之后插入元素之前$(parentSelect).如果jQuery仍然可以看到现有元素并且睡眠/延迟一些任意时间(每个元素200个)似乎是一个脆弱的解决方案,那么我的计算是不正确的.

我可以很容易地.bind()为事件回调提供必要的逻辑但是我不确定如何.trigger()在上面的迭代完成之后干净地调用它.显然,我不能在迭代中调用触发器,因为它会多次触发.

在这种情况下$.each(),我考虑在数据参数的末尾添加一些东西(我将在迭代体中手动查找),但我不想被迫这样,所以我希望有一些其他的优雅关于迭代回调控制流的方法.

each jquery

180
推荐指数
6
解决办法
22万
查看次数

在编辑模式下选择UITableViewCell

如果我创建一个UITableViewController - 向下钻取按预期工作.如果用户选择了一个单元格并且我实现了'didSelectRowAtIndexPath',则单元格会闪烁蓝色并显示下一个视图.

但是,如果我包含一个"编辑"按钮(self.navigationItem.rightBarButtonItem = self.editButtonItem),当用户单击"编辑"时 - 模式正确更改(所有单元格缩进并绘制适当的editAccessory),...但是,细胞不再是"可选择的".

IE:在编辑模式下,当用户选择一个单元格时,没有任何事情发生.没有蓝色闪光.没有调用'didSelectRowAtIndexPath',没有.

当我打开iPhone示例'iPhoneCoreDataRecipes'(在SDK文档中提供)时,果然,他们有一个RecipeDetailViewController - 当进入编辑模式时,仍然允许你向下钻取.我已经下载并构建了他们的示例,它运行得很好.我似乎无法在他们的代码中发现任何诡计,以便在编辑模式行为时启用这个"可选择的单元格",但是当我这样做时,我只是没有得到它.

思考?

非常感谢,

-Luther

iphone uitableview

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

Tomcat vs Weblogic JNDI Lookup

我们使用的Weblogic服务器已配置为允许JNDI数据源名称,如"appds".

对于开发(localhost),我们可能正在运行Tomcat,并且当在server.xml的<context>部分中声明时,Tomcat将在JNDI树中的"java:comp/env/jdbc/*"上挂起JNDI数据源.

问题:在Weblogic中,JNDI查找是"appds",而在Tomcat中,似乎我必须提供正式的"java:comp/env/jdbc/appds".我担心Tomcat版本是一个隐含的标准,但不幸的是,我不能改变Weblogic的配置...所以这意味着我们最终得到两个不同的spring配置文件(我们使用的是spring 2.5)来促进不同的环境.

有没有一种优雅的方式来解决这个问题.我可以直接在Tomcat中查看JNDI名称吗?Spring可以在两个地方都有名字和外观吗?谷歌搜索或建议会很棒.

java tomcat weblogic jndi java-ee

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

单元测试无法找到Core Data模型文件

我已经创建了一个带有Core Data模型的项目.应用程序查找模型文件(.momd)并运行正常.

不幸的是,单元测试不断返回null:

NSURL *dataModelURL = [[NSBundle mainBundle] URLForResource:@"myDataModel" withExtension:@"momd"];
Run Code Online (Sandbox Code Playgroud)

我可以在主目标和单元测试目标的Compile Sources目录中看到myDataModel.xdatamodeld文件夹和文件 - 但这似乎不够.我在单元测试目标中还缺少什么?

谢谢,-Luther

iphone xcode cocoa unit-testing ocunit

16
推荐指数
2
解决办法
5253
查看次数

UISegmentedControl,UIToolbar和UINavigationItem

我创建了一个UISegmentedControl并成功将其附加到我的navigationItem.tableView.

但是当我尝试将它附加到UIToolbar时,它会爆炸.

我确定我之前在工具栏上看过UISegementedControls - 但似乎无法让它工作.思考?

// works
NSArray *statusItems = [[NSArray alloc] initWithObjects:@"one", @"two", nil];
statusSegments_ = [[UISegmentedControl alloc] initWithItems:statusItems];
self.navigationItem.titleView = statusSegments_;

// doesn't work
NSArray *statusItems = [[NSArray alloc] initWithObjects:@"one", @"two", nil];
statusSegments_ = [[UISegmentedControl alloc] initWithItems:statusItems];
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:statusSegments_, nil];
self.toolbarItems = toolbarItems;
[toolbarItems release];
Run Code Online (Sandbox Code Playgroud)
[Session started at 2010-01-01 13:40:35 -0600.]
2010-01-01 13:40:35.182 TimeSheet[15382:20b] *** -[UISegmentedControl view]: unrecognized selector sent to instance 0x3f5c3e0
2010-01-01 13:40:35.183 TimeSheet[15382:20b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', …

iphone uisegmentedcontrol uitoolbar uinavigationitem

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

从Adobe Illustrator导出到PNG切断边缘

我在Adobe Illustrator CS4中创建了一个40px x 40px的图像.我保存为.ai文件,然后尝试导出为PNG.

Adobe Illustrator会自动裁剪背景并将输出拉紧到所有对象周围的矩形,如果正常的话.在这种情况下,我没有边缘工作,所以我的图像不是很宽40px.

但遗憾的是,Illustrator并未导出整个图像.我最终得到了34px宽的图像.实际上,我绘制的图标从左侧开始,但我的对象的右边缘被切断.

任何想法为什么会这样?我无法想象Illustrator CS4无法正确导出到PNG.

png adobe-illustrator

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

NSFetchedResultsControllerDelegate的"ChangeUpdate"行为是否已损坏?

NSFetchedResultsControllerDelegate的文档提供以下示例代码

- (void)controller:(NSFetchedResultsController *)controller
   didChangeObject:(id)anObject
       atIndexPath:(NSIndexPath *)indexPath
     forChangeType:(NSFetchedResultsChangeType)type
      newIndexPath:(NSIndexPath *)newIndexPath {

    UITableView *tableView = self.tableView;

    switch(type) {

        case NSFetchedResultsChangeInsert:
            [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
            break;

        case NSFetchedResultsChangeDelete:
            [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
            break;

        case NSFetchedResultsChangeUpdate:
            [self configureCell:[tableView cellForRowAtIndexPath:indexPath] atIndexPath:indexPath];
            break;

        case NSFetchedResultsChangeMove:
            [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
            [tableView reloadSections:[NSIndexSet indexSetWithIndex:newIndexPath.section] withRowAnimation:UITableViewRowAnimationFade];
            break;

    }

}
Run Code Online (Sandbox Code Playgroud)

当我创建一个新的NSManagedObject时,NSFetchedResultsChangeInsert会触发(太棒了!).当我更改属性的值(用于单元格的标题)时,NSFetchedResultsChangeUpdate将触发.不幸的是,除非我重新加载表格,部分或行,否则新标题不会自动显示.实际上,如果新名称导致结果集排序不同,那么NSFetchedResultsChangeMove会触发,因为提供的代码会重新加载整个部分,所以一切都很好.

的UITableView有一个方法reloadRowsAtIndexPaths:withRowAnimation所以我试图下使用该NSFetchedResultsChangeUpdate代码块.它确实有用......但是这个特定方法的文档读起来好像我不需要它(注意最后一行):

重新加载行会导致表视图向其数据源询问该行的新单元格.该表动画化了新单元格,因为它为旧行设置了动画.如果要提醒用户单元格的值正在更改,请调用此方法.但是,如果通知用户并不重要 - 也就是说,您只想更改单元格显示的值 - 您可以获取特定行的单元格并设置其新值.

是的,如果我记录发生了什么,何时

[self configureCell:[tableView cellForRowAtIndexPath:indexPath] atIndexPath:indexPath]; 
Run Code Online (Sandbox Code Playgroud)

NSFetchedResultsChangeUpdate上调用它,它能够检索最新的"名称"值并将其设置在单元格的textLabel中.除非重新加载,否则名称不会在单元格中呈现.即使我只是单击名称显示的单元格.请注意,要重新创建此行为,您必须创建一个新的托管对象,然后为其指定一个名称,使其在NSFetchedResultsController中对FIRST进行排序.这样,NSFetchedResultsChangeMove不会触发(因为它重新加载该部分,它确实有效).

我错过了什么或这是预期的行为吗?reloadRowsAtIndexPaths的'讨论' 让我相信我应该能够简单地设置单元格的textLabel而无需重新加载行,部分或表格.

iphone core-data uitableview nsfetchedresultscontroller

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

以编程方式确定分组UITableView的填充

有没有办法以编程方式获得UITableView的"分组"样式填充?

我想在屏幕上调整一些大小,但是我需要知道将它们放在UITableView的UITableViewCell分组的左边或右边.

iphone uitableview

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

UIToolbar中的UISegmentedControl颜色

我的问题围绕着UINavigationBar与UIToolbar上的UISegmentedController的区别.如果我将UISegmentedControl放入导航栏,如下所示:

navigationBar.barStyle = UIBarStyleBlackTranslucent;
Run Code Online (Sandbox Code Playgroud)

一切都很好.UISegmentedControl使用稍暗的黑色标识所选选项.但是,如果我将UISegmentedControl放到UIToolbar上,它就不会从工具栏中获取颜色或半透明度.如果我手动设置tintColor,则UISegmentedControl不再区分selected和unselected.

不可否认,在放入UIToolbar之前,必须将UISegmentedControl包装在UIBarButtonItem中.我想知道这是否是UISegmentedControl看起来不正确的原因(半透明黑色背景上的蓝色).

toolbar.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem *item = [[[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; 
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:item,nil];
toolbar.items = toolbarItems;
Run Code Online (Sandbox Code Playgroud)

当然,由于我使用的是内部导航和控制器工具栏,但我的代码并不完整,但一般逻辑是相同的.我不确定如何使UIToolbar上的UISegmentedControl具有黑色半透明样式 - 在选定和未选定的段之间保持明显的区别.

iphone uisegmentedcontrol uitoolbar

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