小编zou*_*oul的帖子

如何让非程序员更容易使用Git子模块?

我们的小软件商店最近从Subversion迁移到Git,因为我们的程序员更好地发现了Git.迁移并非轻松,我们遇到子模块功能问题.我的主要抱怨是,一旦repo包含子模块,你就不能简单地克隆它并期望它能够正常工作.您必须执行额外的步骤来初始化和下载子模块.后续拉动应该自动更新子模块,这样就可以了.但是当我添加一个新的子模块时,推送提交和人们拉动,他们不会自动获得新的子模块,他们必须git submodule update再次手动.

这是愚蠢的,因为人们不能简单地用子模块拉回购物并期望它的构建.这种理解是否正确?程序员可以简单地编写脚本或别名来在接收新提交后更新子模块,但对于我们的非程序员子模块来说很痛苦.我想提出一个解决方案,无论使用何种Git客户端,克隆/拉动后repo都能正常工作.

我有什么选择?

git git-submodules

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

CFBundleDocumentTypes和UIFileSharingEnabled问题

有没有人得到UIFileSharingEnabled或CFBundleDocumentTypes工作?我将UIFileSharingEnabled添加为我的plist,并使用下面链接中的Apple示例来获取CFBundleDocumentTypes,但似乎无法使其工作.

我没有在iTunes中看到我的应用程序在文件共享下,当我在mail.app中点击它时,我没有选择打开我在我的应用程序中注册的文档

http://developer.apple.com/iphone/library/documentation/General/Conceptual/iPadProgrammingGuide/CoreApplication/CoreApplication.html

file-io info.plist plist ipad

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

Objective-C是否在iPhone上有垃圾收集器?

我正在考虑为iPhone编写应用程序.但我对Objective-c语言感到困惑.我说我必须做自己的记忆管理吗?Objective-C是一种托管语言,如C#和/或Java吗?

谢谢!

iphone garbage-collection objective-c

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

什么是寄件人?

我无法在任何地方找到这个答案.当方法头中有sender参数时,它是什么意思?它是代表调用它的实例,还是调用它的方法?

cocoa objective-c

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

在Objective-C中实现Go的'defer'语句?

今天我读到defer了Go语言中的陈述:

一个延迟声明推动一个函数调用到列表中.在周围函数返回后执行已保存调用的列表.延迟通常用于简化执行各种清理操作的功能.

我认为在Objective-C中实现类似的东西会很有趣.你知道怎么做吗?我考虑过调度终结器,自动释放的对象和C++析构函数.

自动释放的对象:

@interface Defer : NSObject {}
+ (id) withCode: (dispatch_block_t) block;
@end

@implementation Defer
- (void) dealloc {
    block();
    [super dealloc];
}
@end

#define defer(__x) [Defer withCode:^{__x}]

- (void) function
{
    defer(NSLog(@"Done"));
    …
}
Run Code Online (Sandbox Code Playgroud)

自动释放的对象似乎是至少持续到函数末尾的唯一解决方案,因为其他解决方案将在当前范围结束时触发.另一方面,他们可以在记忆中停留更长时间,这将是一个麻烦.

Dispatch终结器是我的第一个想法,因为块存在于堆栈中,因此当堆栈展开时我可以轻松地执行某些操作.但是在浏览文档后看起来我不能将一个简单的"析构函数"函数附加到块中,是吗?

C++析构函数大致相同,我会创建一个基于堆栈的对象,其中一个块在析构函数运行时执行.这会将普通.m文件转换为Objective-C++ 有一个丑陋的缺点吗?

我真的不考虑在生产中使用这些东西,我只是对各种解决方案感兴趣.你能想出一些有效但没有明显缺点的东西吗?基于范围和基于功能的解决方案都很有趣.

objective-c go deferred-execution

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

AVAssetExportSession不导出音轨

我有一个应用程序,允许附加多个视频资产并将一个或多个音轨添加到合成.一切似乎都有效,我可以使用最终的合成AVPlayer(尽管音频水平似乎很低).将合成导出到文件后,音轨缺失.

我的代码主要基于WWDC10会话的AVEditDemo示例代码.我已经针对AVEditDemo代码仔细检查了我的代码,但无法找到可能存在的问题.我也检查了论坛,但没有太多与AVFoundation相关的帖子/解决方案.

我们非常欢迎任何帮助.干杯,

让 - 皮埃尔·


使用额外音轨构建合成的方法

笔记:

compositionArray:包含构建组合的资产.
AssetView:包含AVURLAsset的对象.

- (AVMutableComposition *)buildCompositionObjects
{
// no assets available, return nil
if ([compositionArray count] < 1)
{
    return nil;
}

// get the asset video size
AssetView * view =  [compositionArray objectAtIndex:0];
AVURLAsset * asset = view.asset;

CGSize videoSize = [asset naturalSize];

// create new composition
AVMutableComposition * cmp = [AVMutableComposition composition];

// set the size
cmp.naturalSize = videoSize;

// build composition
[self buildComposition:cmp];

// add any extra audio …
Run Code Online (Sandbox Code Playgroud)

iphone audio avfoundation

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

我可以使用Interface Builder在多个笔尖之间注入依赖关系吗?

我习惯从外面为我的对象提供依赖项.Interface Builder是一个帮助实现此目的的工具,但我无法使用多个笔尖.一旦我将主笔尖分成更多文件,我就不能再在不同笔尖中的对象之间建立连接.使用文件所有者并没有多大帮助,因为它只允许我将一个对象传递给一个笔尖.

例:

在此输入图像描述

这里A和B是一些更高级别的对象,C和D是某种更低级别的服务.只要所有物体都在一个大笔尖内(第一张图片),一切都很好.但是当我将笔尖分开分开A和B时,我很难将它们连接到C和D.(显然我不想创建C和D的两个实例,我希望A和B都能说同一个C和D不使用单身人士.)

是否可以在Interface Builder中执行此操作?怎么样?

cocoa dependency-injection interface-builder

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

如何从自定义框架中删除标头?

我有一个使用几个自定义框架的Mac Cocoa应用程序.(Apple将它们称为私有,它是与应用程序一起分发在应用程序包中的框架.)在每个框架中都有一个Headers包含框架头文件的文件夹.在生成的应用程序包中不需要这些,我想将它们保密.目前我使用Run Script构建阶段,其中包含以下行:

# Remove all headers from our private frameworks
find "${TARGET_BUILD_DIR}" -name Headers -print0 | xargs -0 rm -rf
Run Code Online (Sandbox Code Playgroud)

这是做到这一点的方式,还是有更好的方法?


关于我的项目结构的更多信息:我在我的主项目中嵌套了三个Xcode项目,这些项目将我的私有框架作为他们的产品.框架被设置为我的主要目标的目标依赖项.设置的最后一部分是复制文件构建阶段,它接受框架并将它们复制到应用程序包内的Frameworks子文件夹中.(希望这很清楚.)

macos xcode frameworks mac-frameworks

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

沙盒后,辅助功能API停止工作

我的Mac App使用辅助功能API来移动(其他应用程序的)调整大小窗口.

我想将我的应用程序提交给MAS(Mac App Store).我已经读过要向MAS提交应用程序必须打开沙盒.

当我打开沙盒时,我的代码无法通过辅助功能API找到焦点窗口(始终返回NULL).问题是:辅助功能API不能与沙盒一起使用?

我注意到Mac App Store中有应用程序使用辅助功能API,现在不是强制沙盒吗?

提前致谢.

cocoa sandbox accessibility-api mac-app-store

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

理解'自我'并将自我设定为超级

我一直在关注一些教程,而且我正在堕落.有人可以帮忙吗?

我有以下init,这是一个实例方法.

- (id) initWithScore:(int) s {
    self = [super init];

    if (self) {
        score = s;

    }

    return self;
}
Run Code Online (Sandbox Code Playgroud)

现在通过代码阅读我将自己设置为超级init,因此self现在指向super.然后我检查自我是否有效并将得分设置为我在InitWIthScore上发送的值.到目前为止我有这个.

但是现在我返回指向超级的self,那么我如何返回我的子类?

因此,让我们说有人叫我的班级传递100,我的代码返回超级而不是类,所以它是如何工作的?调用代码的得分值是多少?

当然,是的它确实有效,但我不明白为什么:-(

objective-c ios

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