小编Ken*_*ker的帖子

嵌套objective-c块时的语法/格式

我是嵌套块,它看起来像UGGGGLY.有没有办法写这个不那么难看?主要是寻找语法建议,而不是结构,但我也会接受.

我的块工厂方法,

-(NSImage *(^)(CGFloat size, BOOL preview))resizeBlock {

return (NSImage *(^)(CGFloat size, BOOL preview))[[^(CGFloat size, BOOL preview){
        // image-resizing code
        return [[[NSImage alloc] init] autorelease];
    } copy] autorelease];

}
Run Code Online (Sandbox Code Playgroud)

从许多类似于此的函数调用

-(void)queueResize:(CGFloat)targetSize toView:(NSImageView *)targetView {
    NSImage*(^sizeBlock)(CGFloat,BOOL) = [self resizeBlock];
    NSBlockOperation *bo = [NSBlockOperation blockOperationWithBlock:^(void) {
        NSImage *previewImage = (NSImage*)sizeBlock(targetSize,YES);
        targetView.image = previewImage;
    }];
    [queue addOperation:bo];
}
Run Code Online (Sandbox Code Playgroud)

queue是一个NSOperationQueue对象.没有所有(丑陋的丑陋)演员,它将无法编译.Amidoinitrite?

编辑:根据Dave DeLong的回答,和http://www.cimgf.com/2008/02/16/cocoa-tutorial-nsoperation-and-nsoperationqueue/,我改变了行

targetView.image = previewImage;
Run Code Online (Sandbox Code Playgroud)

成为,

[targetView performSelectorOnMainThread:@selector(setImage:) withObject:previewImage waitUntilDone:YES];
Run Code Online (Sandbox Code Playgroud)

objective-c objective-c-blocks nsblockoperation

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

两个应用程序,一个代码库.我怎样才能做到这一点?

我有一个应用程序,它目前在应用程序商店中.

我对另一个应用程序有一个想法,它将与我发布的应用程序共享许多相同的结构.它们都是照片处理应用程序,因此用于导入,共享,保存,旋转等的代码库都将在两者之间共享.但是,照片处理的类型会有所不同.

我的想法是,当我更新应用程序#1时,我希望在应用程序#2中进行这些更改,反之亦然.

从一个代码库获得两个应用程序的最佳方法是什么?

我考虑过的策略,

  1. 一个项目文件,两个目标.这样,两个应用程序的代码库将始终是最新的,但项目文件/目录将有点混乱,当然.
  2. 在git中对应用程序进行分支,经常合并两个分支之间的更改以用于两者使用的类.

我也对其他想法持开放态度.

我发现人们在讨论这个问题,但主要是与微小的变化有关...即一个带有几个不同品牌/数据文件的应用程序.我的两个应用程序将是相当不同的,所以我不认为这些技术必然适用.

xcode cocoa-touch ios

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

使xcode在出现编译错误时播放声音

我碰到了Xcode 3的Terminal One-liner,每次尝试编译并遇到错误时,它都会播放Inception“ BWAAAAHNN”声音。它可以很好地起到阻止错误的作用,因为没人想被这种声音震撼了。

有人知道这是怎么做的吗?它仍然可以在Xcode 4中使用吗?

编辑:感谢贾斯汀的提示(“首选项”>“行为”>“构建失败”>“播放声音”),我这样做:

curl http://www.freesound.org/data/previews/73/73581_634166-lq.mp3 -o /Developer/Extras/trombone.mp3
defaults write com.apple.dt.Xcode "Xcode.AlertEvents.4_1" -dict-add "Xcode.AlertEvent.BuildFails" '<dict><key>Xcode.Alert.Sound</key><dict><key>enabled</key><true/><key>soundPath</key><string>/Developer/Extras/trombone.mp3</string></dict></dict>'
defaults write com.apple.dt.Xcode "Xcode.AlertEvents" -dict-add "Xcode.AlertEvent.BuildFails" '<dict><key>Xcode.Alert.Sound</key><dict><key>enabled</key><true/><key>soundPath</key><string>/Developer/Extras/trombone.mp3</string></dict></dict>'
Run Code Online (Sandbox Code Playgroud)

尽管我不确定是否需要第三行(Xcode似乎保留了两个版本的行为设置?),但它多于1行。另外,这次我选择了不同的声音。:)

xcode

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

iOS 6共享像Messages,而不像Photos(UIActivityViewController和UIDocumentInteractionController)

在iOS 6中,点击Photos应用程序中的操作按钮会显示标准的UIActivityViewController:

来自Photos的UIActivityViewController

从Messages中执行相同操作会提供一组不同的选项.这看起来像是在使用UIDocumentInteractionController api来拉取所有可以处理图像的应用程序.

UIAcitivtyViewController? 来自消息

我的问题是双重的:

  1. 如何进入"消息"操作菜单?Tumblr和Halftone,仅举几例,已经做到了......我似乎无法找到文档.

  2. 如何显示消息样式的操作菜单?当我呈现一个UIActivityViewController它没有那些选项...只是标准设置facebook/twitter/copy/print/save to camera roll/etc.

谢谢!

sharing ios uidocumentinteraction uidocument uiactivityviewcontroller

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

如何将一个字符串拆分成句子可可

我有NSString一些句子,我想把它分成NSArray句子.以前有人解决了这个问题吗?我发现enumerateSubstringsInRange:options:usingBlock:哪个能够做到,但看起来它在iPhone上不可用(仅限Snow Leopard).我考虑过基于句点分割字符串,但这似乎不是很强大.

到目前为止,我最好的选择似乎是使用RegexKitLite将其正则化为一系列句子.解决方案?

string iphone cocoa objective-c nsstring

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

重定向HTTP POST

好的,所以在我的网络应用程序的API中,我有一个传入的HTTP发布请求.我想将POST请求传递给其他服务器,而不会丢失POST标头中的数据.这可能吗?我会使用哪种类型的重定向?php例子?

编辑:HTTP请求来自移动应用程序,而不是Web浏览器.

谢谢!

php post redirect http

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

Rails向后路由我的calendar_event_path?

Rails给我的网址有错误的ID.它将父ID传递给子,将子ID传递给父.

在我的routes.rb我有

resources :calendars do
  resources :events
end
Run Code Online (Sandbox Code Playgroud)

这rake routes告诉我正在建立良好的路线,例如

calendar_event GET    /calendars/:calendar_id/events/:id(.:format)      {:controller=>"events", :action=>"show"}
Run Code Online (Sandbox Code Playgroud)

所以当我从我的视角中询问该路线的路径时,

<%= link_to "#{event.name} @ #{event.calendar.name} #{event.calendar.year}", calendar_event_path(event) %>
Run Code Online (Sandbox Code Playgroud)

它给了我一个ids反转的网址...

http://localhost:3000/calendars/<-eventid->/events/<-calendarid->
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!!!

编辑:在我的模型中,事件belongs_to :calendar和日历has_many :events.我也使用Mongoid作为我的ORM,而不是ActiveRecord,但我希望这不是问题.

ruby routing ruby-on-rails ruby-on-rails-3

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

Swift:属性是实现协议的 UIView 子类

这是场景。我想要显示许多不同的视图,具体取决于我向用户显示的模型对象。所以我建立了一个协议,任何实现它的视图都可以被呈现。

class MyItem { /* some model properties */ }

protocol ItemView: class {
    // some protocol methods (e.g. updateWithItem(), etc)
    func setupItem(item: MyItem)
}

class SpecificItemView: UIView, ItemView { /* there will be multiple classes like this */
    func setupItem(item: MyItem) {
        // do item setup
    }
}

class AnotherItemView: UIView, ItemView {
    func setupItem(item: MyItem) {
        // do DIFFERENT item setup
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,当我在视图控制器中使用它们时,我得到了一个 ItemView 类:

class MyViewController: UIViewController {

    var itemView: ItemView? // could be a SpecificItemView …
Run Code Online (Sandbox Code Playgroud)

polymorphism protocols properties class swift

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

iPhone键盘安全,

我想通过OS禁用自动文本捕获,如果你输入UITextField/UITextView OS在你的应用程序中捕获这个文本(如果没有在它的字典中找到),它将作为纯文本存储在/ text.dat文件中根/库/键盘

现在,如果您打开并阅读此文件,则可以轻松阅读您在应用程序中输入的内容.

我的要求是,我如何禁用此功能,以便在我的应用程序中,操作系统不会捕获文本输入到此文件中?

您甚至可以在iPhone Simualtor上查看此信息

security iphone

2
推荐指数
1
解决办法
3631
查看次数

在objective-c中实现真/假/未定义三分法变量的最佳方法

我temped使用的int,并作出0 == NO,1 == YES和别的==未定义.显然有一百万种方法可以做这样的事情,但对你来说这似乎是最好的方式?我能想到的问题包括简单性和内存占用(例如,如果我有很多这些?).

另一种方法是使用两个BOOL,一个用于isDefined,一个用于value

其他方式,

typedef enum { CPStatusUndefined, CPStatusAvailable, CPStatusUnavailable } CPStatus;

编辑,用例是:

我有一个很难计算的是/否属性.在检查时,会经常检查(通过UIMenuControllerOFTEN),但除非用户选择它,否则永远不会检查它.我选择处理这个问题的方式是一个三型变量.第一次检查时,如果未定义,则计算是/否值并返回,之后返回yes/no值.

cocoa boolean objective-c

2
推荐指数
1
解决办法
997
查看次数

在php中,'double greater than'符号是什么意思?

我有这个代码,我正在尝试从php移植到c/objective-c:

if ($byteIndex < count($data) ) {
    $light = ( ( ($data[$byteIndex] >> $bitIndex) & 1) == 1);
}
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到>>在这里指示的任何地方.就此而言,也不是"&1".

php porting operators

2
推荐指数
1
解决办法
4291
查看次数

在没有NoneType错误的情况下访问嵌套dicts的pythonic方法是什么

我有一个深嵌套的dict(从json解码,来自instagram api).我的初始代码是这样的:

caption = post['caption']['text']
Run Code Online (Sandbox Code Playgroud)

但是如果'caption'键或'text'键不存在,那将抛出NoneType或KeyError错误.

所以我想出了这个:

caption = post.get('caption', {}).get("text")
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我不确定它的风格.例如,如果我将此技术应用于我正在尝试检索的更深层次的嵌套属性之一,它看起来非常难看:

image_url = post.get('images',{}).get('standard_resolution',{}).get('url')
Run Code Online (Sandbox Code Playgroud)

有没有更好,更pythonic的方式来写这个?我的目标是检索数据(如果有的话),但如果数据不存在则不会阻止执行.

谢谢!

python dictionary styles nonetype keyerror

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

motionBegan和motionEnded事件的比例是1比1吗?

我正在实施此答案中描述的摇动手势,但如果我摇动手机的时间超过一秒钟,则无法调用motionEnded.

OS保证的motionBegan和motionEnded事件的比率是否为1比1,或者这是响应者链的问题,事件是否被发送到其他地方?

iphone cocoa-touch accelerometer

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