Objective c 通过比较新的字符串保留属性来修改NSAttributedString?
不确定标题是否好,但问题是 我正在从大量的数据中开发一个应用程序,用户无法更改这些数据,但可以添加诸如评论、注释、书签等内容 我正在考虑使用Objective c 通过比较新的字符串保留属性来修改NSAttributedString?,objective-c,ios7,nsstring,nsattributedstring,Objective C,Ios7,Nsstring,Nsattributedstring,不确定标题是否好,但问题是 我正在从大量的数据中开发一个应用程序,用户无法更改这些数据,但可以添加诸如评论、注释、书签等内容 我正在考虑使用NSAttributedString来允许用户向所有原始NSStrings文本段落添加突出显示 我遇到的问题是,基础数据可能会发生变化。有时是由于人为错误(键入错误等),有时是因为数据只是更新。通常,这只不过是更正一两个单词或在原始NSString中添加/删除一个句子 我试图避免的是用新字符串替换字符串,并丢失属性或使它们出现在错误的位置 我想做的是找出新的
NSAttributedString
来允许用户向所有原始NSStrings
文本段落添加突出显示
我遇到的问题是,基础数据可能会发生变化。有时是由于人为错误(键入错误等),有时是因为数据只是更新。通常,这只不过是更正一两个单词或在原始NSString
中添加/删除一个句子
我试图避免的是用新字符串替换字符串,并丢失属性或使它们出现在错误的位置
我想做的是找出新的NSString
和旧的NSString
之间的差异,并在不丢失用户可能添加的任何现有属性的情况下插入/删除相应的更改
例如,我可能有一个NSAttributedString
,如下所示:
awl声明有5天的时间作出响应。在极端情况下,这可能会减少
用户可能突出显示了第一句话或只是数字5
我现在需要修正这一点:
法律规定有5天的时间作出答复。在极端情况下,这可能会减少
或:
文章说有5天的时间可以回复。在极端情况下,这可能会减少
也许以后:
法律规定,在正常情况下,将有7天的时间作出答复。在极端情况下,这可能会减少。很少允许更长的时间
…同时保留格式的要点。i、 e.突出显示整个句子,或只是将数字格式化
我想我需要的是:
NSAttributedString
的原始属性时执行这些编辑我仍然对各种可能性持开放态度,但如果有人有解决方案,我会把问题留给其他人。不确定我是否理解所有后果,但我理解
nsmutableAttributeString
包含一个字符串和一个应用于某个范围的属性字典。它还提供插入、删除和替换AttributedString的方法,这意味着插入或替换的字符串也有其属性。对于您来说,关键在于决定哪些属性将应用于插入的字符串,要么是插入点左侧或右侧的现有属性,要么是无属性NSMutableAttributedString
在字符串更改时负责属性范围的移动,您可以免费获得它。@MartinKoles谢谢您的回答。是的,我知道如何处理字符串的属性和插入/删除/替换字符。正如我所说的,我可以对具体的例子这样做,没有任何问题。我想弄清楚的是,是否可以采用NSString*A
和NSString*B
并准确地确定需要进行哪些更改才能将A更改为B。