V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
remaerd
V2EX  ›  外包

「iOS / Swift 」独立开发项目有偿求助

  •  
  •   remaerd · 2017-11-21 20:49:13 +08:00 via iPad · 1224 次点击
    这是一个创建于 2560 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好。

    我在用 Swift 独立设计开发一款叫做 iOS 效率软件。我本身不是理科出身的,数学逻辑不太好,所以遇到一个逻辑相对复杂的地方,一直拖着没有解决。所以来这里寻求帮助。

    具体点说,我的软件是一个写作软件。但文章数据不会保存为 Document,而是一个数据库。所以当用户使用 UITextView 时,软件会将 NSAttributedString 转换成 CoreData 数据。我脑子无法胜任搞定逻辑过于复杂的转换,所以想借你们解决问题。

    感兴趣的话,请联系我的邮箱 [email protected] ,并告诉我需要支付多少费用。做出来的代码放在 Bitbucket private repo 或 GitHub public repo 都行,只需要通过 unit testing,能用就行。

    p.s 我自己本身也有做一些 swift 开源项目,比如这个。GitHub.com/remaerd/keys

    17 条回复    2017-11-26 09:41:44 +08:00
    13036101641
        1
    13036101641  
       2017-11-22 10:08:01 +08:00
    NSAttributedString 有很多属性,只是将它的文本存储到 CoreData 吗?
    xiubin
        2
    xiubin  
       2017-11-22 10:14:08 +08:00 via iPhone
    写作软件的重点不是在于编辑器上吗?
    remaerd
        3
    remaerd  
    OP
       2017-11-22 10:21:32 +08:00
    @13036101641 需要将 UITextView 内的 NSAttributedString 分段存到 CoreData。难点在于用户的全部修改会直接进数据库。而用户的编辑行为其实有很多种可能,包括输入,删除,剪切粘贴。我自己搞过,然后很多地方都可能出问题。
    remaerd
        4
    remaerd  
    OP
       2017-11-22 10:22:56 +08:00
    @xiubin 是的。我自己本身能应付一部分比较简单的开发。所以不需要将整个项目交给其他人做,也没这么多资源。
    zjddp
        5
    zjddp  
       2017-11-22 13:26:01 +08:00
    试试 openXML ?不知道这个算不算一种富文本持久化方案
    zjddp
        6
    zjddp  
       2017-11-22 13:32:20 +08:00
    另外,用户操作全进数据库这个,是不是考虑到 undo/redo 了,我记得 Foundation 提供了 NSUndoManager 来管理 undo/redo,如果是的话你可以试一下。
    13036101641
        7
    13036101641  
       2017-11-22 17:35:21 +08:00
    https://developer.apple.com/library/content/samplecode/StateRestore/Introduction/Intro.html
    这个是 iOS 官方的一个 demo,估计满足不了你那么复杂的需求,它这个 api 主要用于恢复应用的状态
    remaerd
        8
    remaerd  
    OP
       2017-11-23 06:37:44 +08:00   ❤️ 1
    @zjddp
    @13036101641

    进数据库并不是为了 Undo / Redo。如果文章里面包含任务清单,我会在文章编辑器之外的地方展示任务;并做一个快速跳转搜索栏,可以随时随地跳转到任何内容。如果使用纯 Document / XML / KeyedArchiver 格式保存文件,是无法实现快速搜索跳转和任务清单功能的,所以需要将文章内容保存到数据库内,并将文章的内容进行分段储存。

    我目前的办法是通过 NSTextStorage 获得用户的光标位置,并只保存光标这一段内容的修改情况。但是在修改的过程中,会出现很多我上面提到的替代路径,比如添加,删除,批量添加,批量删除,修改。所以像我这种逻辑能力不强的人,就无法承担这么复杂的替代路径,并保证软件不出 BUG... 有朋友建议我不要用这么复杂的办法实现,但是如果用这种方式偷懒的话,以后要实现新功能时,又会有很大机率碰到其他问题。
    zjddp
        9
    zjddp  
       2017-11-23 13:52:00 +08:00
    @remaerd 感觉和 Notion 很像,容我再想想方案。
    remaerd
        10
    remaerd  
    OP
       2017-11-23 21:07:03 +08:00 via iPhone
    @zjddp 对,是和 Notion 的 Model 架构有点像。有兴趣的话,可以一起私聊一下。^_^
    remaerd
        11
    remaerd  
    OP
       2017-11-25 11:02:43 +08:00
    我还是没找到解决办法,你们有空可以帮我看看吗?
    多谢。

    @zjddp
    @13036101641
    13036101641
        12
    13036101641  
       2017-11-25 11:05:54 +08:00
    @remaerd 我还想等你做出来了,用这么个高大尚软件呢,我有用印象笔记,感觉它也没有你提出的这么个功能啊,只是感觉它创建笔记很方便,而且和电脑同步起来很流畅
    remaerd
        13
    remaerd  
    OP
       2017-11-25 11:26:41 +08:00
    @13036101641 感觉 Notion 蛮适合你的,我自己用起来会觉得比较复杂。我还有好多酷炫屌的想法还没实现,好想尽早搞定这堆麻烦事。
    13036101641
        14
    13036101641  
       2017-11-25 11:30:09 +08:00
    @remaerd 好,我试试,第一次听说这个软件
    zjddp
        15
    zjddp  
       2017-11-25 14:29:22 +08:00
    @remaerd 手头有别的项目,我抽时间帮你想想可以吗?
    remaerd
        16
    remaerd  
    OP
       2017-11-25 23:51:51 +08:00
    @zjddp 谢谢你。有空联系。[email protected]
    zhigang1992
        17
    zhigang1992  
       2017-11-26 09:41:44 +08:00
    可以考虑全部 snapshot? 虽然费一点存储,但是就不用处理那些逻辑了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   888 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:38 · PVG 05:38 · LAX 13:38 · JFK 16:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.