Tag: objective c

你如何从cocoa应用程序运行rails命令?

我已经坚持了一段时间。 我正在尝试从我的cocoa应用程序运行rails shell命令来创建新闻rails应用程序。 当我跑 ~/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/bin/rails new projectname 我能够创建一个新项目。 但是,如果我运行这样的东西 NSString *path = @”~/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/bin/rails”; NSString *script = [NSString stringWithFormat:@”%@ new ~/Desktop/testapp”, path]; system([script UTF8String]); 或这个 – (IBAction)buildProject:(NSButton *)sender { NSString *path = @”~/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/bin/rails”; NSArray *args = [NSArray arrayWithObjects:@”new”, @”~/Desktop/testapp”, nil]; NSTask *task = [NSTask new]; [task setLaunchPath:path]; [task setArguments:args]; [task launch]; } 我收到以下错误 /Users/dylanross/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/bin/rails:7:in `require’: no […]

iPhone NSTimeZone:localTimeZone混乱

从我的理解,呼唤 NSLog(@”Local Time Zone %@”,[[NSTimeZone localTimeZone] name]); 为您提供设备的本地时区。 它给我的是“US / Central” ,我在[NSTimeZone abbreviationDictionary]的缩写列表中找不到任何地方,或者[NSTimeZone knownTimeZoneNames]中的时区名称列表。 这个来自哪里? 我需要将当前设备时区传递给Rails应用程序,它理解“澳大利亚/悉尼”或“美国/芝加哥”之类的内容 ,但不了解“US / Central” 。 我如何获取localTimeZone给我的内容并将其转换为Rails可以理解的字符串(即knownTimeZoneNames中的任何时区,它应该是系统知道的所有时区名称?)

Objective C + Reskit – 如何用密钥包装我的字典以避免格式化问题?

我正在尝试用密钥包装我的HTTP POST请求。 换句话说,我想转此: { “category_id”=>”1”, “food_name_token”=>”Pizza”, “id”=>”1” } 进入这个: { “dish” => { “category_id”=>”1”, “food_name_token”=>”Pizza”, “id”=>”1″ } } 我尝试在RestKit中使用’rootKeyPath’方法: serializationMapping.rootKeyPath = @”dish”; 但这给了我这个奇怪的格式化字符串: { “dish”=> “{ \n \”category_id\” = 1; \n \”food_name_token\” = Pizza; \n id = 1; \n} “} 它使用等号和分号代替箭头和逗号,并添加所有这些换行符和转义反斜杠。 知道为什么吗? 关于我能做什么的任何建议? PS我正在使用Rails后端

有没有更简单的方式来显示$ currency格式?(特别是逗号)我可以将RE与Objective C代码集成吗?

我使用X代码4。 并制作美国货币计算器。 我的目标是以适当的格式显示数字? 喜欢 1,234美元 $ 12,100名 $ 1,23,123 我不想通过附加和字符串来做到这一点。 有没有更简单的方法,以便我可以集成任何RE或任何ruby或Python。 这将有助于我制作货币格式。 请告诉我更简单的方法而不是长时间的编程。

为rails应用程序构建iphone客户端的最佳方法是什么?

我有一个相当标准的rails应用程序,并希望能够从iPhone应用程序访问基本的CRUD(创建,更新,删除)操作以及我添加的查询。 Rails或多或少开箱即可为这些操作提供REST API。 在iphone上处理REST / XML部分的最佳方法是什么,是否有任何好的Objective-C库已经做过这种事情了? 操作还需要与特定用户相关联(即经过身份validation)。

MacRuby自定义初始化程序

刚刚今天下午发现了MacRuby; 男人是那么酷! 但是,我试图用一些MacRuby-fu扩展旧项目时遇到了一些困难。 这是交易: 所以我在Objective-C中有一个超类,如下所示: @implementation Foo – (id) init { if (self = [super init]) { //Do nothing, don’t have enough data… } return self; } – (id) initWithName:(NSString*)n andLocation:(NSString*)loc andSomethingElse:(Bar*)b { if (self = [super init]) { //Set a LOT of internal state… } return self; } @end 因此,在ruby文件中,我们将其称为Mung.rb,如下所示: class Mung < Foo […]

使用Cocoa框架时,MacRuby指针,引用,解除引用

在MacRuby指向typedef结构的指针上 ,我学会了如何取消引用用它创建的指针 x=Pointer.new_with_type … ==> use x.value, or x[0] 干得好吃! 现在我想学习我认为的“对立面”。 我正在尝试使用此API。 OSStatus SecKeychainCopySettings ( SecKeychainRef keychain, SecKeychainSettings *outSettings ); 第二个参数必须是指针。 但我从来没有设法打开钥匙链的真实outSettings,我只获得默认设置。 framework ‘Security’ keychainObject = Pointer.new_with_type(‘^{OpaqueSecKeychainRef}’) SecKeychainOpen(“/Users/charbon/Library/Keychains/Josja.keychain”,keychainObject) #attempt #1 settings=Pointer.new_with_type(‘{SecKeychainSettings=IBBI}’) SecKeychainCopySettings(keychainObject.value, settings) p settings.value # #attempt #2 settings2=SecKeychainSettings.new result = SecKeychainCopySettings(keychainObject.value, settings2) p settings2 # 应阅读钥匙串的设置 # 我错过了什么?

Ruby || = Objective-C中的等价物

我一直在学习ruby,我基本上爱上了|| = feature,因为它会让Objective L中的懒惰getter更容易。 目前我写的吸气剂如: – (NSArray *)myArray { if (!_myArray) { _myArray = [NSArray array]; } return _myArray } 除非我遗漏了|| =的东西,否则我可以使用以下代码在Ruby中编写前面的代码: – (NSArray *)myArray { return _myArray ||= [NSArray array]; } 多数民众赞成显然更清洁。 Objective-C语言/运行时中是否有任何可以使您执行此操作的内容? 此外,以下是吸气剂的单行三元组,我不确定它是否与上面发布的尝试和真实方法一样有效(第一个片段)。 如果有人做错了,有人可以告诉我: – (NSArray *)myArray { return _myArray = _myArray ? _myArray : [NSArray array]; }

我的Rails和Cocoa应用程序之间的SHA1哈希值不匹配

我有一个Cocoa应用程序将一些数据连同该数据的SHA1哈希发送到Rails应用程序,该应用程序validation数据和哈希匹配,但它们没有。 为了确保我已经在Rails和Cocoa端记录了散列到控制台的数据的hex版本,并且它们完全匹配。 这是cocoa部分: #import //… – (NSData *)dataOfSHA1Hash { unsigned char hashBytes[CC_SHA1_DIGEST_LENGTH]; CC_SHA1([self bytes], CC_SHA1_DIGEST_LENGTH, hashBytes); return [NSData dataWithBytes:hashBytes length:CC_SHA1_DIGEST_LENGTH]; } //… NSData *signatureData = [signedData dataOfSHA1Hash]; NSString *signature = [signatureData hexadecimalString]; ..和Rails: Digest::SHA1.hexdigest(signed_data) 请注意,-hexadecimalString是NSData的自定义扩展(似乎没有内置),我已经测试过了。 这种方法似乎不是问题。 那么,为什么我的SHA1哈希值不匹配相同的数据呢? 有任何想法吗? 编辑:示例 对于字符串“Hello World!” cocoa:f98ee9c814c2f3c66ccdca641298d12cd26741ec Rails:2ef7bde608ce5404e97d5f042f95f89f1c232871 cocoa: NSMutableData *signedData = [[NSMutableData alloc] init]; [signedData appendData:[@”Hello World!” dataUsingEncoding:NSUTF8StringEncoding]]; NSData […]

OS X时间直到(系统/显示/磁盘)睡眠?

有没有人知道查询OS X的方法,以便在它进入系统睡眠或激活显示器睡眠(甚至是磁盘睡眠)之前,通过命令行或任何其他方法找出实际剩余的时间(例如Ruby或Objective-C)? 我认为通过命令行的pmset之类的东西可能提供了这些信息,但它似乎只显示和更新当前设置,而不是允许反馈操作系统当前循环的位置。 我的要求是我目前有一个Ruby脚本,我只想在我不使用机器时运行,并且一个简单的’whatcher脚本’允许这样做,但是什么’看’是我需要的东西帮助。 似乎应该有一个简单的答案,但到目前为止我还没有找到任何明显的答案。 有任何想法吗?