「iOS / Swift 」独立开发项目有偿求助 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
remaerd
V2EX    外包

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

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

    大家好。

    我在用 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     Solana     930 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 20:24 PVG 04:24 LAX 12:24 JFK 15:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86