小编Olo*_*lof的帖子

在Interface Builder中删除autolayout(约束)

我正在尝试使我的项目与Snow Leopard兼容,并且我无法使用"界面"构建器(Lion上的XCode 4.3)删除nib中的autolayout.

是否可以在XCode上删除nib中的约束和自动布局?

macos xcode cocoa interface-builder osx-snow-leopard

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

将std :: tuple转换为模板参数包

我有一个

typedef std::tuple<A, B> TupleType;
Run Code Online (Sandbox Code Playgroud)

并希望将类列表用于"模板".

假设我有:

template<typename... args>
std::tuple<args...> parse(std::istream &stream) {
  return std::make_tuple(args(stream)...);
}
Run Code Online (Sandbox Code Playgroud)

并且我可以成功地使用它:

auto my_tuple = parse<A, B>(ifs);
Run Code Online (Sandbox Code Playgroud)

是否可以避免必须指定类列表A,B如果我已经有了

typedef std::tuple<A,B> TupleType;
Run Code Online (Sandbox Code Playgroud)

列表A,B已经存在?

一个例子:

#include <cstdlib>  // EXIT_SUCCESS, EXIT_FAILURE
#include <iostream> // std::cerr
#include <fstream>  // std::ifstream
#include <tuple>    // std::tuple

class A {
public:
  A(std::istream &);  // May throw FooBaarException 
};

class B {
public:
  B(std::istream &); // May throw FooBaarException 
};

template<typename... args>
std::tuple<args...> parse(std::istream &stream) {
  return std::make_tuple(args(stream)...);
}

int main() {
  std::ifstream …
Run Code Online (Sandbox Code Playgroud)

c++ tuples variadic-templates c++11

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

MPMoviePlayerController在后台播放airPlay,双击主页按钮时崩溃

当我进入主屏幕并且app在后台时,MPMoviePlayerController成功播放了airPlay.但是,当我双击主页按钮时,应用程序崩溃了.这发生在iOS 5上,但不是4.3.

为了排除其他代码,我创建了一个新的空项目,只在按下按钮时执行下面的代码.

moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8"]];

NSError *setCategoryError = nil; 
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError]; 

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlaybackComplete:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:moviePlayerController];

[moviePlayerController setMovieSourceType:MPMovieSourceTypeStreaming];
[self addObservers];
[self.delegate addSubview:moviePlayerController.view];
if([moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)])
{
    [moviePlayerController setAllowsAirPlay:YES];
}

moviePlayerController.fullscreen = YES;

moviePlayerController.scalingMode = MPMovieScalingModeAspectFit;
[moviePlayerController prepareToPlay];
[moviePlayerController play];
Run Code Online (Sandbox Code Playgroud)

在控制台中,我在崩溃时得到以下输出:

Jan 27 12:08:01 unknown mediaserverd[295] <Error>: <<<< FIGSERVER >>>> FigPlayerRemoteServer_KillAndForceCrashReport: RPCTimeout message received to terminate [295] with reason 'fig rpc timeout -- FigSharedRemote_VolumeCategoryForAudioCategory'
Jan 27 12:08:01 unknown ReportCrash[308] <Notice>: MS:Notice: Installing: (null) …
Run Code Online (Sandbox Code Playgroud)

iphone mpmovieplayercontroller ios airplay ios5

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

当str为零时,为什么([str length] - 2)大于0?

当运行以下代码时,它进入for循环并运行NSLog.为什么会这样?

NSString *aString = nil;

for (int i=0; i<([aString length]-2); i++) {
   NSLog(@"Inside loop.");
}
Run Code Online (Sandbox Code Playgroud)

因为我的[aString length]-2结果是-2而且那个小于0?

for-loop objective-c

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