2012-06-25 27 views
22

मैं एक बड़ी NSArrayNSNumbers3, 4, 20, 10, 1, 100, आदि से युक्त है ...एनएसएआरएआरई से एनएसएनंबर की कुल राशि कैसे प्राप्त करें?

मैं इन सब NSNumbers कुल (3 + 4 + 20 + 10 + 1 + 100 + etc...) एक के रूप में NSInteger के कुल योग कैसे मिलता है?

धन्यवाद!

उत्तर

20
NSInteger sum = 0; 
for (NSNumber *num in myArray) { 
    sum += [num intValue]; 
} 
4

सरणी के माध्यम से दोहराएं

int count = [array count]; 
NSInteger sum = 0; 
for (int i = 0; i < count; i++) { 
    sum += [[array objectAtIndex:i] integerValue]; 
} 
7
long long sum = ((NSNumber*)[array valueForKeyPath: @"@sum.longLongValue"]).longLongValue; 
+0

बहुत बहुत धन्यवाद! – Winston

+0

'valueForKeyPath:' एक ऑब्जेक्ट देता है, पूर्णांक नहीं। –

2
int total = 0; 
for (NSNumber *number in array) 
{ 
    total += [number intValue]; 
} 

इस में मदद मिलेगी कर सकते हैं आप

148

आप इस का उपयोग कर सकते हैं:

NSArray* numbers = //array of numbers 
NSNumber* sum = [numbers valueForKeyPath: @"@sum.self"]; 
+4

यह सबसे सुंदर समाधान है। यहां डॉक्स: http: //developer.apple.com/library/ios/ipad/#documentation/cocoa/conceptual/KeyValueCoding/Articles/CollectionOperators.html – Jon

+1

यह निश्चित रूप से सबसे सुंदर समाधान है। हालांकि एक छोटी सी समस्या है। यदि सरणी में तत्वों में से एक NSNull है, तो यह क्रैश हो जाता है। –

+0

इसके अलावा यह सभी अंकगणित को 'डबल' के साथ करने के लिए प्रलेखित है। तो, पांच साल बाद, 64-बिट रनटाइम और 'एनएसआईएनटेगर 'के साथ अब' डबल 'के समान आकार है, जो संख्याएं बड़ी होने पर परिशुद्धता के नुकसान का जोखिम लेती है। – Tommy