2011-08-28 105 views
-1

我正在使用文本編輯器iPhone應用程序,用戶可以使用自定義字體,大小和顏色鍵入並保存筆記。所以我有一個NSString,UIFont和一個UIColor。我需要將所有這些存儲在某種數據結構中,但我不確定最好的方法是什麼。目前,我正在使用一個NSMutableArray,它向字符串的plist寫入,另外兩個NSMutableArray自定義對象在退出時保存到NSUserDefaults。但是這太複雜了,無法管理和調試。有沒有更好的方法來做到這一點?在iPhone中存儲文本,字體和顏色的最佳方式是什麼?

+0

這是怎麼我會保存這些項目:)你說你正在使用數組存儲的字體和顏色 - 肯定的字體,你可以只保存顏色的名稱,只是十六進制代碼?這將取決於你目前如何加載並允許選擇,我猜。 – Luke

回答

2

我想創建一個自定義NSObject的子類,稱爲AttributedText。它將使用自定義setter存儲這些值,並可以使用自定義getter從數據存儲中檢索。如果你使用這個自定義對象,你可以很容易地將它保存到NSUserDefaults中。

0

你的方式是最直接的。如果你正在尋找的東西有點清潔,你可能會考慮建立一個小的自定義對象的職責是:

  1. 存儲所需的數據,並在NSUserDefaults
  2. 保存/載入需要

定義你想要的數據對象上的簡單的getter/setter API,並用它來分離出處理陣列和用戶默認的複雜性。 (您將使用最你已經擁有相同的實現的,只是在不同的類。)

+0

NSDictionary在這裏有什麼用處嗎? – Snowman

+0

這完全取決於你想要做什麼。如果這是你當前的實現,使用帶有鍵('text','font','color')的NSDictionary比使用三元素的NSMutableArray更容易。 – Tim

0

我只是存儲一個屬性字符串。

+0

NSAttributedString聲明符合iOS上的NSCoding,但通常不起作用,因爲它的幾乎所有屬性都是非橋接核心文本類型。 – Isabel

相關問題