小编Tho*_* G.的帖子

RealmObject Equatable冗余消息

我们有一个简单的类Person,它来自领域Object.现在我们希望该子类符合Equatable协议.非常简单的代码看起来像这样.

class Person: Object, Equatable {

    dynamic var localID     = "0"
    dynamic var name:String?
}

func ==(lhs: Person, rhs: Person) -> Bool {

    return lhs.localID == rhs.localID
}
Run Code Online (Sandbox Code Playgroud)

我们从领域版本0.98.8开始,一切都按预期工作.当我们更新到版本0.102.0(以及其他版本之间)时,会出现编译器错误消息

Error: Redundant conformance of ‚Person‘ to protocol ‚Equatable‘
Run Code Online (Sandbox Code Playgroud)

不够奇怪,如果降级回版本0.98.8,错误仍然存​​在.另一个奇怪的行为,在我们的一个开发者机器上,相同的代码编译得很好.

经过一些研究,我们不知道发生了什么,以及如何解决或解决这个问题.

realm swift equatable

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

适用于整个国家的iOS离线地图(OSM)

我试图准备OSM(*.osm.pbf) - 整个意大利的数据,用于离线使用iPhone-app.我需要从7到16的缩放级别,因为全国各地都有很多POI.

是我的出发点.此解决方案的问题是数据库的文件大小.

是否有针对iOS 6/7的基于矢量的离线地图使用的开源解决方案?或者,是否可以最小化数据库文件大小?

offline vector map openstreetmap ios

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

Cocoapods与自定义框架

我想生成一个podspec文件,它有一个自定义框架,一个类和一个第三方框架作为依赖.

单个类通过包含该框架的一个头来引用自定义框架.如果我跑

pod lib lint

出现此错误:

- ERROR | [xcodebuild] /Users/xyz/Documents/iOS/Apps/Sample/Core/Sample.h:10:9: fatal error: 'CustomFramework/Bar.h' file not found

我的podspec文件的相关部分如下所示:

 s.source_files     = 'Core/*' , 'Core/CustomFramework.framework/Headers/*.h'
 s.preserve_paths   = 'Core/CustomFramework.framework/**/*' 
 s.xcconfig         = { 'FRAMEWORK_SEARCH_PATHS' => '"${PODS_ROOT}/Headers"' }
 s.frameworks       = 'CustomFramework'
 s.xcconfig         = { 'OTHER_LDFLAGS' => '-ObjC' , 'LIBRARY_SEARCH_PATHS' =>    '"${PODS_ROOT}/CustomFramework/Headers"'}

 s.dependency 'MapBox', '1.1.0'
Run Code Online (Sandbox Code Playgroud)

单个类继承自MapBox框架的类.

我觉得我想念一些但却无法弄清楚是什么.有什么建议或提示吗?

xcode frameworks ios cocoapods

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

iOS9 Contacts Framework从新保存的联系人获取标识符

我在保存请求后直接需要新创建的联系人的标识符.用例:在我的应用程序中,用户创建一个新联系人并为他们提供一些属性(例如姓名,地址......),之后他可以保存联系人.此方案正如预期的那样工作.我的代码看起来像这样:

    func createContact(uiContact: Contact, withImage image:UIImage?, completion: String -> Void)
    {    
       let contactToSave = uiContact.mapToCNContact(CNContact()) as! Cnmutablecontawctlet
       if let newImage = image
       {
          contactToSave.imageData = UIImageJPEGRepresentation(newImage, 1.0)
       }
       request           = CNSaveRequest()
       request.addContact(contactToSave, toContainerWithIdentifier: nil)
       do
       {
          try self.contactStore.executeSaveRequest(request)
          print("Successfully saved the CNContact")
          completion(contactToSave.identifier)
       }
       catch let error
       {
         print("CNContact saving faild: \(error)")
         completion(nil)
       }
  }
Run Code Online (Sandbox Code Playgroud)

Contact Object(uiContact)只是CNContact的包装器.在闭包完成时,我需要返回标识符,但此时我无权访问它们,因为他是在写入过程之后由系统创建的.一种解决方案可能是使用谓词获取新保存的CNContact

public func unifiedContactsMatchingPredicate(predicate: NSPredicate, keysToFetch keys: [CNKeyDescriptor]) throws -> [CNContact]
Run Code Online (Sandbox Code Playgroud)

但在我看来,这似乎有点不洁,因为这种接触可能只有一个名称,而且可能存在多个名称.像创建标识符的回调之类的东西会很好.但事实并非如此.还有其他方法可以解决这个问题吗?

ios swift cncontact cncontactstore contacts-framework

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