Это - то, что я имею, придумал до сих пор - чтобы получить идентификаторы всех сообщений, затем получить фактические объекты для первого x количества идентификаторов..
Это не ужасно эффективно, но больше, чем получение всех сообщений, затем бросая большую часть далеко. Однако к моему удивлению это, казалось, работало вполне быстро - я работал posthelper.page()
метод 100 раз, и потребовалось приблизительно 0,5 секунды.
я не хотел отправлять это в фактическом вопросе, таким образом, он не будет влиять на ответы так же - вот код:
allPostsUuid = """
function(doc) {
if(doc.type == 'post'){
emit(doc._id, null);
}
}
"""
class PostsHelper:
def __init__(self):
server = Server(config.dbhost)
db = server[config.dbname]
return db
def _getPostByUuid(self, uuid):
return self.db.get(uuid)
def page(self, number = 1):
number -= 1 # start at zero offset
start = number * config.perPage
end = start + config.perPage
allUuids = [
x.key for x in self.db.query(allPostsUuid)
]
ret = [
self._getPostByUuid(x) for x in allUuids[start : end]
]
if len(ret) == 0:
raise Error404("Invalid page (%s results)" % (len(allUuids)))
else:
return ret
NSApplicationDelegate - это новый протокол с версии 10.6. . Вы получаете сообщение об ошибке (я предполагаю), потому что делегат вашего приложения реализует этот протокол. Я не уверен, что это лучший способ, но вы можете просто рассмотреть возможность использования препроцессора, чтобы помочь вам:
#if (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_5)
@interface MyAppDelegate : NSObject
#else
@interface MyAppDelegate : NSObject <NSApplicationDelegate>
#endif