আপনি যদি পূর্ণসংখ্যার একটি অ্যারে তৈরি করতে চান, আপনি এনএসআইন্টিজার ব্যবহার করতে পারেন? আপনার কি এনএসবার ব্যবহার করতে হবে? যদি তাই হয় তবে কেন?
আপনি যদি পূর্ণসংখ্যার একটি অ্যারে তৈরি করতে চান, আপনি এনএসআইন্টিজার ব্যবহার করতে পারেন? আপনার কি এনএসবার ব্যবহার করতে হবে? যদি তাই হয় তবে কেন?
উত্তর:
আপনি সরল পুরানো সি অ্যারে ব্যবহার করতে পারেন:
NSInteger myIntegers[40];
for (NSInteger i = 0; i < 40; i++)
myIntegers[i] = i;
// to get one of them
NSLog (@"The 4th integer is: %d", myIntegers[3]);
অথবা, আপনি একটি NSArrayবা ব্যবহার করতে পারেন NSMutableArray, তবে এখানে আপনাকে প্রতিটি সংখ্যার NSNumberউদাহরণের মধ্যে আবৃত করতে হবে (কারণ NSArrayবস্তুগুলি শ্রেণীর উদাহরণগুলি ধরে রাখার জন্য ডিজাইন করা হয়েছে)।
NSMutableArray *myIntegers = [NSMutableArray array];
for (NSInteger i = 0; i < 40; i++)
[myIntegers addObject:[NSNumber numberWithInteger:i]];
// to get one of them
NSLog (@"The 4th integer is: %@", [myIntegers objectAtIndex:3]);
// or
NSLog (@"The 4th integer is: %d", [[myIntegers objectAtIndex:3] integerValue]);
NSArray, আমি নিশ্চিত আপনি পারফরম্যান্স হিট অনুভব করবেন না।
সি অ্যারে:
NSInteger array[6] = {1, 2, 3, 4, 5, 6};
উদ্দেশ্য-সি অ্যারে:
NSArray *array = @[@1, @2, @3, @4, @5, @6];
// numeric values must in that case be wrapped into NSNumbers
সুইফ্ট অ্যারে:
var array = [1, 2, 3, 4, 5, 6]
এটিও সঠিক:
var array = Array(1...10)
এনবি: অ্যারেগুলি দৃift়ভাবে সুইফটে টাইপ করা হয়; সেক্ষেত্রে সংকলকটি সামগ্রীটি থেকে অনুমান করে যে অ্যারেটি পূর্ণসংখ্যার অ্যারে। আপনি এই স্পষ্টত ধরণের সিনট্যাক্সটিও ব্যবহার করতে পারেন:
var array: [Int] = [1, 2, 3, 4, 5, 6]
আপনি যদি ডাবলগুলির একটি অ্যারে চাইতেন তবে আপনি এটি ব্যবহার করবেন:
var array = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] // implicit type-inference
বা:
var array: [Double] = [1, 2, 3, 4, 5, 6] // explicit type
আপনি যদি কোনও এনএসআরাই ব্যবহার করতে চান তবে আপনার এটিতে একটি উদ্দেশ্য-সি শ্রেণীর প্রয়োজন - সুতরাং এনএসবার নম্বর প্রয়োজন।
এটি বলেছিল, ওবজ-সি এখনও সি, তাই আপনি নিয়মিত সি অ্যারে ব্যবহার করতে পারেন এবং আপনার প্রয়োজন হলে এনএসএন নাম্বারগুলির পরিবর্তে নিয়মিত ইনটগুলি ধরে রাখতে পারেন।
আপনি এনএসআরির পরিবর্তে সিএফআরএ ব্যবহার করতে পারেন । কীভাবে তা ব্যাখ্যা করার জন্য একটি নিবন্ধ এখানে দেওয়া হয়েছে ।
CFMutableArrayRef ar = CFArrayCreateMutable(NULL, 0, NULL);
for (NSUInteger i = 0; i < 1000; i++)
{
CFArrayAppendValue(ar, (void*)i);
}
CFRelease(ar); /* Releasing the array */
অন্যান্য ধারকগুলির কোরফাউন্ডেশন সংস্করণেও এটি একই প্রযোজ্য।
আরও সহজলভ্যভাবে ব্যবহার করার জন্য ভাল পুরাতন সি অ্যারের চারপাশে আমি একটি সাধারণ অবজেক্টিভ সি র্যাপার তৈরি করেছি: https://gist.github.com/4705733
যদি আপনার পূর্ণসংখ্যার ক্রমের প্রয়োজন হয় না এবং যদি কেবল অনন্য মান থাকে
আপনি NSIndexSet বা NSMutableIndexSet ব্যবহার করতে পারেন আপনি সহজেই পূর্ণসংখ্যার যোগ করতে এবং মুছে ফেলতে সক্ষম হবেন বা আপনার অ্যারেতে কোনও পূর্ণসংখ্যা রয়েছে কিনা তা পরীক্ষা করতে পারবেন
- (void)addIndex:(NSUInteger)index
- (void)removeIndex:(NSUInteger)index
- (BOOL)containsIndexes:(NSIndexSet *)indexSet
আরও তথ্যের জন্য ডকুমেন্টেশন চেক করুন ।
NSSet(এবং একটিতে মোড়ানো পূর্ণসংখ্যার ব্যবহার NSNumber) এর সাথে কী সমস্যা?
আমি মনে করি এনএসএন নম্বর ব্যবহার করা অনেক সহজ। আপনার যা করতে হবে তা এই:
NSNumber *myNum1 = [NSNumber numberWithInt:myNsIntValue1];
NSNumber *myNum2 = [NSNumber numberWithInt:myNsIntValue2];
.
.
.
NSArray *myArray = [NSArray arrayWithObjects: myNum1, myNum2, ..., nil];
forসংখ্যার জন্য বা অন্য কোনও অ্যারে ব্যবহার করতে পারেন এবং তারপরেও arrayWithArray।