myMethod:如果通过NSObject调用异常会引发异常,会发生什么performSelectorOnMainThread:withObject:waitUntilDone:?
特别是,我可以在这样的电话会议中抓住他们performSelectorOnMainThread......
@try {
[self performSelectorOnMainThread:@selector(myMethod) withObject:nil waitUntilDone:YES];
} @catch(NSException *e) {
//deal with exception raised in myMethod here??
}
Run Code Online (Sandbox Code Playgroud)
我意识到如果waitUntilDone是这样的语义很奇怪NO.
我正在使用Cocoa Programming For Mac OS X(一本好书).本书给出的一个练习是构建一个简单的待办事项.UI具有表格视图,用于键入新项目的文本字段以及用于将新项目添加到表格的"添加"按钮.
在后端我有一个控制器,它是我的NSTableView的数据源和委托.控制器还实现了由"添加"按钮调用的IBAction方法.它包含一个NSMutableArray来保存待办事项列表项.单击该按钮时,操作方法将正确触发,新字符串将添加到可变数组中.但是,我的数据源方法未正确调用.他们在这里:
- (NSInteger)numberOfRowsInTableView:(NSTableView*)aTableView {NSLog(@"Calling numberOfRowsInTableView:%d",[todoList count]); return [todoList count]; }- (id)tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(NSInteger)rowIndex {
NSLog(@"Returning %@ to be displayed", [todoList objectAtIndex:rowIndex]);
return [todoList objectAtIndex:rowIndex];
}
Run Code Online (Sandbox Code Playgroud)
这是擦.-numberOfRowsInTableView仅在应用程序首次启动时调用,而不是每次我向数组添加新内容时调用.-objectValueForTableColumn永远不会被召唤.我认为这是因为Cocoa非常聪明,在没有任何东西可以绘制的时候不会调用这个方法.我需要调用一些方法让表视图知道它的数据源已经改变了,它应该重绘自己吗?
我想以编程方式更改与HDF5文件中的数据集关联的数据.我似乎找不到按名称删除数据集的方法(允许我再次使用修改后的数据添加数据集)或按名称更新数据集.我正在使用适用于HDF5 1.6.x的C API,但指向任何HDF5 API都会很有用.
是否有工具来计算标题中定义的方法数?这似乎是人们不时想做的事情,但我从来没有听说过这样的实用工具.我可以自己滚动(在这种特殊情况下,想出适合我的东西很容易),但我想我先尝试stackoverflow :)
谢谢,易
我听过一些过去比较成熟的辩论:RubyCocoa或Obj-C/Cocoa ......但我觉得答案正好超过了真正欣赏答案的"新手".
所以问题是:对于一个初学者来说,几乎没有编程经验,是否更容易学习Ruby并通过桥接探索Cocoa(然后可能解决Obj-C)或直接跳到Objective-C和可可.
两个社区都很强大,拥有大量的资源,但是很多人都指出Obj-C的语法只是令人生畏.也许对于一个真正的初学者来说,学习Ruby然后解决Objective-C会更容易吗?
更新:我道歉,但当我说"学习Ruby并探索Cocoa"时,我并不是要通过RubyCocoa学习编程,而是学习Ruby(一旦有足够的信心)开始探索Cocoa,并有可能利用他们的成长解决Obj-C的技能.
我一直在读,如果一个集合"被释放"它也会释放它的所有对象.另一方面,我还读到,一旦集合被解除分配,集合就会释放它的对象.
但最后一件事可能并非总是如苹果所说.系统决定是否解除分配是好的.在大多数情况下,它会,但在某些情况下不会.
所以我想知道一个集合是否会导致这样的内存泄漏?当它确实发布了 - 它的所有对象发送到集合本身的-release消息时,它应该实际上 - 一旦我获得集合本身就保存集合中的所有对象.
帮助我清楚地了解这一点.谢谢!
我是Python的新手.我现在正在运行Python2.6.我正在关注Python网站上的教程.我的问题是当我尝试按照这里的说明操作时:
http://py-psycopg.darwinports.com/
我得到的东西......
sudo port install py-psycopg
... bunch of errors here...
Error: The following dependencies failed to build: py-mx python24
Run Code Online (Sandbox Code Playgroud)
我正在运行MacOS X 10.4.
我如何使这项工作?
任何回复将不胜感激.
更新:
运行下面的代码后,我得到以下错误:
$ sudo port install py26-psycopg2
Warning: Skipping upgrade since openssl 0.9.8k_0 >= openssl 0.9.8k_0, even though installed variants "" do not match "+darwin". Use 'upgrade --enforce-variants' to switch to the requested variants.
Warning: Skipping upgrade since readline 6.0.000_1 >= readline 6.0.000_1, even though installed variants "" do not match "+darwin". Use 'upgrade …Run Code Online (Sandbox Code Playgroud) 我正在使用NSURLOS X 10.6中引入的新书签数据API来存储文件系统资源的"别名".我用的时候
+[NSURL URLByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error:]
Run Code Online (Sandbox Code Playgroud)
要解析书签数据,nil如果文件不再存在,我会得到.因为我不是通过NSURLBookmarkResolutionWithoutUI在书签分辨率选项,我预计将出现一个对话框,比如,当你打开一个别名文件通过Finder中显示,不再解析(即一个对话框,取消固定别名,等...) .
有没有办法NSURL自动提示重新连接/解决损坏的书签数据?
书签数据通过以下方式创建:
NSError *err
NSData *bookmarkData = [myFileURL bookmarkDataWithOptions:NSURLBookmarkCreationSuitableForBookmarkFile
includingResourceValuesForKeys:nil
relativeToURL:nil
error:&err];
Run Code Online (Sandbox Code Playgroud)
虽然如果我使用0选项代替的话,我会得到相同的结果NSURLBookmarkCreationSuitableForBookmarkFile.
我试图解决相同的过程bookmarkData:
BOOL stale;
NSError *err
NSURL *resolvedURL = [NSURL URLByResolvingBookmarkData:self.bookmarkData
options:0
relativeToURL:nil
bookmarkDataIsStale:&stale
error:&err];
Run Code Online (Sandbox Code Playgroud)
通过书签数据写入到取景器别名文件,然后通过从该文件随后按上述方法读出书签数据解析URL的舞蹈去不产生任一所期望的UI结果(虽然在Finder打开别名文件不产生所需的UI对话框).
我有这个宣言.
- (BOOL)getNHPData:(REMOTE_MESS_ID)msgId withEvent:(RSEvent*&)pEvent;
Run Code Online (Sandbox Code Playgroud)
我RSEvent**也试过,但我得到这个错误2次
Expected ')' before RSEvent
Run Code Online (Sandbox Code Playgroud)
为什么会如此.
简而言之,我想创建一个简单的视频播放器,可以播放一些主要的视频格式,例如quicktime*.mov.我需要的是:
我的目标是mac,一开始.因此,首选技术是Cocoa和Objective-C.但如果没有什么可以做的,我也可以想象用Java做点什么.任何的想法?
对不起,如果我问一些愚蠢但请不要把我击倒!
我在xcode中做了一点玩,但只不过是一个按钮按计数器的东西..
我很好奇..在开发视网膜显示器时,你显然会产生更高的分辨率png和新的显示器.
你会如何让应用程序在较低分辨率的iPhone上运行?
您是否会使用相同的高分辨率图形并让操作系统执行其余工作,或者您是否需要编写一大堆代码来根据设备切换图形?
再次对不起,如果它在文档中,但我找不到它!
提前致谢..