每当我尝试在Xcode 6 Beta 4中运行我的应用程序时,我收到错误:
The file "MyApp.app" couldn't be opened because you don't have permission to view it.
Run Code Online (Sandbox Code Playgroud)
无论我的目标是什么模拟器或设备,都会出现此错误.
我试过了:
有没有其他人遇到这个问题并找到了解决方案?
我链接两个不同的共享库.两个库都定义了一些共享名称但具有不同实现的符号.我不能让每个库使用自己的实现而不是另一个.
例如,两个库都定义了一个bar()
内部调用的全局函数.库1调用它foo1()
,库2调用它foo2()
.
Lib1.so:
T bar
T foo1() // calls bar()
Run Code Online (Sandbox Code Playgroud)
Lib2.so:
T bar
T foo2() // calls bar()
Run Code Online (Sandbox Code Playgroud)
如果我将我的应用程序链接到Lib1.so然后链接到Lib2.so即使在调用时也会调用Lib1.so中的bar实现foo2()
.另一方面,如果我将我的应用程序链接到Lib2.so然后链接到Lib1.so,则始终从Lib2.so调用bar.
有没有办法让库总是更喜欢自己的实现高于任何其他库?
我无法将我的框架与利用该框架的代码链接起来.具体来说,链接器无法找到泛型结构的扩展符号.
这是Optional的扩展之一:
extension Optional {
/// Unwrap the value returning 'defaultValue' if the value is currently nil
func or(defaultValue: T) -> T {
switch(self) {
case .None:
return defaultValue
case .Some(let value):
return value
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果代码是在应用程序的主要部分中编译的,则此方法在游乐场或应用程序中运行良好.但是,当我尝试将其编译为Framework时,apps(甚至是框架的测试)会产生以下链接器错误:
体系结构i386的未定义符号:"__TFSq2orU__fGSqQ__FQQ",引自:__TFC18SwiftPlusPlusTests27Optional_SwiftPlusPlusTests13testOrWithNilfS0_FT_T_ in Optional + SwiftPlusPlusTests.o
类似的方法,如下面的一个,链接罚款(注意,它不是通用的)
extension String {
/// Returns a string by repeating it 'times' times
func repeat(times: Int) -> String {
var result = ""
for i in 0..times {
result += self
}
return result
}
}
Run Code Online (Sandbox Code Playgroud)
我的存储库中有两个其他扩展在github上: …
我正在使用SWIG在PHP中包装C++ API.我大部分时间都在那里,但我遇到了一个返回向量的函数的问题.标题看起来像这样:
#include <vector>
namespace STF
{
class MyClass
{
public:
const std::vector<MyOtherClass> &getList();
};
}
Run Code Online (Sandbox Code Playgroud)
接口文件如下所示:
%include <std_vector.i>
%import "STF_MyOtherClass.i"
%{
#include "STF_MyOtherClass.h"
#include "STF_MyClass.h"
%}
%include "STF_MyClass.h"
Run Code Online (Sandbox Code Playgroud)
我似乎能够调用该函数,但它返回的是PHP资源而不是对象.具体来说,它是一种类型的资源:"_ p_std__vectorT_STF__MyClass_t".
我怎样才能让它返回一个我可以遍历的对象(最好是使用foreach循环)或者如何迭代这个资源?
更新:
我一直在研究基于我在这里阅读的解决方案:http://permalink.gmane.org/gmane.comp.programming.swig/16817
基本上我试图将矢量转换为python数组:
%typemap(out) std::vector<STF::MyOtherClass>
{
array_init( return_value );
std::vector<STF::MyOtherClass>::iterator itr;
itr = $1.begin();
for( itr; itr != $1.end(); itr++ )
{
zval* tmp;
MAKE_STD_ZVAL( tmp );
SWIG_SetPointerZval( tmp, &*itr, $descriptor(STF::MyOtherClass*), 2 );
add_next_index_zval( return_value, tmp );
}
}
Run Code Online (Sandbox Code Playgroud)
这非常接近工作.我在SWIG_ZTS_SetPointerZval中的包装器代码中放置了一个断点.当它初始化对象时,它为"stf__myotherclass"执行zend_lookup_class失败(它没有找到clasS).我不确定为什么找不到这门课.
为什么我不能改变一个隐式解包的可选变量?
以下是重现问题的简短示例:
var list: [Int]! = [1]
list.append(10) // Error here
Run Code Online (Sandbox Code Playgroud)
Immutable value of type '[Int]' only has mutating members named 'append'
var number: Int! = 1
number = 2
number = 2 + number
number += 2 // Error here
Run Code Online (Sandbox Code Playgroud)
Could not find an overload for '+=' that accepts the supplied arguments
我正在尝试使用Xcode构建一个链接静态C++库的Objective-C桌面应用程序.我正在使用Apple的clang编译器.我收到以下链接器错误:
Apple clang version 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin11.2.0
Thread model: posix
"/Developer/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.7.0 -syslibroot /Developer/SDKs/MacOSX10.7.sdk -o /Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug/sl marketplace analyitics.app/Contents/MacOS/sl marketplace analyitics -lcrt1.10.6.o -L/Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug -L/Users/andrew/Projects/sl-marketplace-analysis/platform/mac/sl marketplace analyitics/../../../../../Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug -filelist /Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Intermediates/sl marketplace analyitics.build/Debug/sl marketplace analyitics.build/Objects-normal/x86_64/sl marketplace analyitics.LinkFileList -framework Cocoa -lcore -lSystem /Developer/usr/bin/../lib/clang/3.0/lib/darwin/libclang_rt.osx.a -F/Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug
Undefined symbols for architecture x86_64:
"std::ios_base::Init::~Init()", referenced from:
___cxx_global_var_init in libcore.a(test.o)
"std::ios_base::Init::Init()", referenced from:
___cxx_global_var_init in libcore.a(test.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit …
Run Code Online (Sandbox Code Playgroud) 我正在使用一个UISnapBehavior,但它的速度太快了,我不喜欢.有没有办法减慢速度?或者换句话说:有没有办法调整物体的弹性以及它应该捕捉的点?
我想从DQL中的子查询结果中执行SELECT.相当于在SQL中执行以下操作:
SELECT * FROM ( SELECT foo1,foo2 FROM bar ) where foo1='something';
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是它抱怨
Error: Class '(' is not defined
Run Code Online (Sandbox Code Playgroud)
产生该错误的实际DQL是:
SELECT u FROM (
SELECT u, COUNT(u) as total
FROM Utterance u LEFT JOIN u.recordings r
WHERE r.speaker IS NULL OR r.speaker <> 5
GROUP BY u.id
) matched WHERE total < 5
Run Code Online (Sandbox Code Playgroud)
重申一下,如何从子查询中执行选择?
iOS 4+; 当我将一个nil值传递给我的NSNumberFormatter时,我想要设置的nil符号(NSString*)作为回报.它适用于'零'符号,但不适用于零符号.我尝试了许多不同的配置设置,如行为,分组等.
fmtr = [[NSNumberFormatter alloc] init];
[fmtr setNumberStyle:NSNumberFormatterDecimalStyle];
[fmtr setFormatterBehavior:NSNumberFormatterBehaviorDefault];
[fmtr setUsesGroupingSeparator:NO];
[fmtr setNilSymbol:@"###"];
[fmtr setZeroSymbol:@"0000"];
NSLog(@"[fmtr nilSymbol]=>>%@<<", [fmtr nilSymbol]);
NSLog(@"[fmtr stringFromNumber:nil]=>>%@<< this should be '###", [fmtr stringFromNumber:nil] );
NSLog(@"[fmtr stringFromNumber:0]=>>%@<<", [fmtr stringFromNumber:[NSNumber numberWithInt:0]] );
NSLog(@"[fmtr stringFromNumber:null]=>>%@<<", [fmtr stringFromNumber:NULL] );
NSLog(@"[fmtr numberFromString:nil]=%@", [fmtr numberFromString:nil] );
NSLog(@"[fmtr numberFromString:@\"0\"]=%@", [fmtr numberFromString:@"0"] );
NSLog(@"[fmtr numberFromString:NULL]=%@", [fmtr numberFromString:NULL] );
Run Code Online (Sandbox Code Playgroud)
以下是测试的输出:
[fmtr nilSymbol] = >> ### <<
[fmtr stringFromNumber:nil] = >>(null)<<这应该是'###
[fmtr stringFromNumber:0] = >> 0000 <<
[fmtr stringFromNumber:null] = >>(null)<<
[fmtr numberFromString:nil] …
我正在尝试创建自己的Generic序列类型.我可以创建的最简单的示例显示性能问题:
// Warning, this code will cause Xcode to hang if you run this in a playground
// Instead I recommend running it in the REPL or running it with the command
// line tool
struct TakeGenerator<T: GeneratorType>: GeneratorType {
typealias Element = T.Element
var generator: T
mutating func next() -> Element? {
return self.generator.next()
}
}
struct Take<T: SequenceType>: SequenceType {
typealias Generator = TakeGenerator<T.Generator>
let seq: T
let test: ((element: T.Generator.Element) -> Bool)?
func generate() -> Generator { …
Run Code Online (Sandbox Code Playgroud)