小编Jim*_*uls的帖子

多线程和自动释放池在Cocoa中一起工作吗?

我想从工作线程发送一个对象回到主线程.但是,自动释放池是否在线程之间工作?以下代码有什么问题:

-(void)mainThreadReceiveResult:(id)response
{
  [response retain];
    /* Do some stuff with response */
  [response release];
}


-(void)workerThreadDoWork
{

 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

 response * response = [[[response alloc] init] autorelease];
 response->someData = [self getSomeData];

 [delegate performSelectorOnMainThread:@selector(receiveResult:) withObject:response waitUntilDone:NO];

 [pool release];    

}
Run Code Online (Sandbox Code Playgroud)

似乎工作正常.但是[pool release],在主线程能够保留之前,工作线程是否可以到达?

cocoa multithreading objective-c

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

我可以在没有数据库的情况下使用Rails,只调用Web服务吗?

我打算写一些新的UI代码,很多人建议使用RoR.但是从我到目前为止读到的关于RoR的内容来看,似乎几乎必须要有一个数据库来存储后端数据.就我而言,我无法访问数据库,所有数据对象都可通过Web服务(一些REST和SOAP服务)获得.

我认为在这种情况下我必须使用控制器直接与服务通信,但是在没有模型层(ActiveRecord)的情况下使用RoR仍然是个好主意.

是否有任何其他框架更适合这种方法(我可以使用Java或Ruby中的任何东西,我们没有任何PHP或Python代码).

web-services ruby-on-rails

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

是否有更好的方法将一堆东西放入NSUserDefaults?

NSUserDefaults对iPhone 感到困惑.

我来自C/asm背景,Objective-C的东西是学习经验.

我目前正在使用NSUserDefaults存储一些字符串(对于高分表中的名称).我想开始实施"保存游戏"类型功能,这样如果用户接到电话或退出游戏片刻,他们就可以回来了.

为了恢复游戏,我有几个BOOL标志,几个ints来存储一些必要的变量,但我被困在一个我需要存储的数组.

我有一个50元素的unsigned chars 数组.int如果它能让事情变得更容易,我可以将它移动到s,但我只是没有看到它.

为了合作,NSUserDefaults我可以setBool(已经这样做了),setFloat(再次,已经这样做了)setInteger,和setObject.

显然,我可以为数组的每个元素声明键并逐个存储它们,setInteger但这真的很糟糕.解决这个问题的最佳方法是什么?而不是一个unsigned chars 数组,我不知何故尝试使用NSObject?有什么好的教程NSObject我可以阅读以更好地理解它吗?

iphone cocoa cocoa-touch objective-c

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

'rm'+'svn update'等同于Git?

在svn工作目录中,我可以

  1. 在工作目录中的文件中进行一些更改
  2. 删除'rm在该目录中的所有源文件所做的所有更改,但保留我的.svn目录)
  3. 使用'svn update'检索主干所应的内容,svn会将所有源代码下载回我的工作目录.

在git中有一个等效的命令吗?你能告诉我怎么做吗?

svn git

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

如何开始使用Java构建Web应用程序?

我想用java开始web开发.我不知道如何开始,学习什么,或者学习和使用的最佳Web框架是什么.帮帮我?

java web-applications

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

雪豹上的NSOperationQueue有多轻量级?

我正在使用一些代码,这些代码使用各种回调执行大量异步操作; 使用积木和GCD,Snow Leopard让这非常容易.

我是这样打来NSTaskNSBlockOperation:

[self.queue addOperationWithBlock:^{
    NSTask *task = [NSTask new];
    NSPipe *newPipe = [NSPipe new];
    NSFileHandle *readHandle = [newPipe fileHandleForReading];
    NSData *inData = nil;
    [task setLaunchPath:path];
    [task setArguments:arguments];
    [task launch];

    while ((inData = [readHandle availableData]) && [inData length]) {
        [[NSOperationQueue mainQueue] addOperationWithBlock:^{
            // callback
        }];
    }

    [task waitUntilExit];
}];
Run Code Online (Sandbox Code Playgroud)

这种方法非常有效.它就像魔术,只要我的回调正确处理并发.

现在,我希望能够合并其中一些电话; 这是模型对象的"刷新"方法,可能需要很长时间才能完成.让用户敲击刷新按钮不应该占用机器和所有这些.

我可以看到这里的实施困境.我可以创建一大堆队列 - 每个呼叫类型一个 - 并将其并发操作计数设置为1,然后-cancelAllOperations在新呼叫时调用.

或者,我可以对当前正在进行的调用进行更多的手动记录,并为每个模型对象管理单个队列(正如我正在做的那样),或者我可以更进一步使用全局队列.

有多重NSOperationQueue?创建大量队列是一个糟糕的架构决策吗?有没有更好的方法来合并这些任务?

cocoa objective-c nsoperation osx-snow-leopard

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

NSMutableString和nil用于内存管理

如果我有NSMutableString这样的

NSMutableString *foo = [[NSMutableString alloc] init];
Run Code Online (Sandbox Code Playgroud)

如果我把对象弄清楚了foo = nil,是否会将保留计数降低1,从而有效地释放内存?此时我是否需要从堆中重新分配foo才能使用它?

iphone cocoa cocoa-touch objective-c

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

在Rails中与同一个类进行多个关联的最佳实践?

我认为我的问题最好被描述为一个例子.假设我有一个名为"Thing"的简单模型,它有一些简单数据类型的属性.就像是...

Thing
   - foo:string
   - goo:string
   - bar:int
Run Code Online (Sandbox Code Playgroud)

这并不难.db表将包含三个具有这三个属性的列,我可以使用@ thing.foo或@ thing.bar等访问它们.

但是我试图解决的问题是当"foo"或"goo"不再包含在简单数据类型中时会发生什么?假设foo和goo代表相同类型的对象.也就是说,它们都只是具有不同数据的"Whazit"实例.所以现在Thing可能看起来像这样......

Thing
  - bar:int
Run Code Online (Sandbox Code Playgroud)

但现在有一个名为"Whazit"的新模型看起来像这样......

Whazit
  - content:string
  - value:int
  - thing_id:int
Run Code Online (Sandbox Code Playgroud)

到目前为止,这一切都很好.现在这里是我被困住的地方.如果我有@thing,我怎么设置它来引用我的2个Whazit实例的名称(为了记录,"业务规则"是任何Thing总是有2个Whazits)?也就是说,我需要知道我的Whazit是否基本上是foo或goo.显然,我不能在当前的设置中做@ thing.foo,但我认为这是理想的.

我最初的想法是给Whazit添加一个"name"属性,这样我就可以得到与我的@thing相关的Whatzits,然后通过这种方式选择我想要的Whazit.这看起来很难看.

有没有更好的办法?

ruby activerecord ruby-on-rails

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

Java项目中的Git或Mercurial用法

只是想知道你是否有人在你的Java项目中使用Git或Mercurial,或者Subversion仍然是最受欢迎的选择?我最近一直在关注github.com和bitbucket.org,但由于存储库可能是私有的,我无法得到实际使用情况的良好指示.

java svn git mercurial

5
推荐指数
4
解决办法
1705
查看次数

用于学习Objective-C的博客

是否有专门针对Objective-C和iPhone开发的博客?

iphone objective-c

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