我正在构建一个静态库,以便分发给其他iOS开发人员,并且在配置链接器以允许静态库在另一个应用程序中使用时遇到一些麻烦.我已经使用本指南创建了一个MyStaticLibrary.framework包,其中包含lib本身以及其他资源(如图像).这构建成功并使用cocoapods来获取所需的依赖项(AFNetworking等).到现在为止还挺好.
但是当我将MyStaticLibrary.framework导入到一个新的Xcode项目中以测试使用该库构建应用程序时,我得到了大量的链接器错误(架构i386的未定义符号,_ OBJC_CLASS _ $ _ CLASSNAME),表明我在这里做了一些非常错误的事情.
所以我的问题是,如何使用源自cocoapods的依赖项构建MyStaticLibrary.framework,这样我可以为第三方提供我的框架文件并允许它们访问公共头文件中指定的所有函数?
我有一个使用Core Data的应用程序,具有以下相当标准的托管对象上下文层次结构:
Persistent Store Coordinator
? Save Context (Private Queue Concurrency Type)
? Main Context (Main Queue Concurrency Type)
? Private Context (Private Queue Concurrency Type)
Run Code Online (Sandbox Code Playgroud)
所有托管对象上下文的合并策略都设置为 NSMergeByPropertyObjectTrumpMergePolicy
我观察NSManagedObjectContextDidSaveNotification当保存私有上下文并将更改合并到主上下文时,将调用以下函数:
func contextDidSaveNotificationHandler(notification: NSNotification) {
if let savedContext = notification.object as? NSManagedObjectContext {
if savedContext == privateObjectContext {
mainObjectContext.performBlock({
if let updatedObjects = notification.userInfo![NSUpdatedObjectsKey] as? Set<NSManagedObject> {
//
// fire faults on the updated objects
//
for obj in updatedObjects {
mainObjectContext.objectWithID(obj.objectID).willAccessValueForKey(nil)
}
}
mainObjectContext.mergeChangesFromContextDidSaveNotification(notification)
})
}
}
}
Run Code Online (Sandbox Code Playgroud)
这大部分时间都在工作,但有时我发现私有上下文中对现有对象的更改未合并到主上下文中.我无法弄清楚为什么 …
假设我有一个表存储公司之间的交易,每一行的结构如下:
(int) buyerId | (int) sellerId | (float) transactionAmount
Run Code Online (Sandbox Code Playgroud)
我想获取一个特定的公司ID,并找出他们拥有最多单边网络交易历史的公司.例如,公司A的ID为100.我想找出哪个公司的销售净值最高 - 购买.如果表数据如下:
buyerID sellerId transactionAmount
100 200 10.00
200 100 5.00
100 300 1.00
Run Code Online (Sandbox Code Playgroud)
公司100从公司200购买了10.00美元的商品,公司200从公司100购买了5.00美元的商品,总净交易价值为5.00美元.公司100的净交易价值为1.00,公司300但不到5.00美元,我对这里的最大值感兴趣.
是否有MySQL查询我可以用来查找$ 5.00总和($ 10.00 +( - $ 5.00)),其中transactionAmount字段中的值可以更改为正/负,具体取决于哪个公司是买方,哪个公司是卖方?或者我是否需要获取所有相关行并在代码中计算此最大值?
谢谢!