কীভাবে আমি এনজিআর্রে সহজ উপায়ে সিজিপিউইন্ট অবজেক্ট যুক্ত করতে পারি?


129

আমার কাছে প্রায় 50 টি সিজিপিয়েন্ট অবজেক্ট রয়েছে যা "পথ" এর মতো কিছু বর্ণনা করে এবং আমি সেগুলি এনএসএরিতে যুক্ত করতে চাই। এটি এমন একটি পদ্ধতি হতে চলেছে যা কেবলমাত্র প্রদত্ত সূচকের জন্য সংশ্লিষ্ট সিজিপিয়েন্টকে ফিরিয়ে দেবে। আমি পি 1 = ... এর মতো 50 টি ভেরিয়েবল তৈরি করতে চাই না; পি 2 = ... এবং আরও কোনও সহজ উপায় আছে যা অবজেক্টগুলির সাথে এনএসআরাইয়ের সূচনা করার সময় আমাকে "তাত্ক্ষণিকভাবে" এই পয়েন্টগুলি সংজ্ঞায়িত করতে দেয়?

উত্তর:


324

সঙ্গে UIKitঅ্যাপল থেকে CGPoint জন্য সমর্থন যোগ NSValue, তাই আপনি করতে পারেন:

NSArray *points = [NSArray arrayWithObjects:
                     [NSValue valueWithCGPoint:CGPointMake(5.5, 6.6)],
                     [NSValue valueWithCGPoint:CGPointMake(7.7, 8.8)],
                     nil];

আপনার সিজিপয়েন্ট হিসাবে যতগুলি [এনএসভ্যালু] উদাহরণ রয়েছে তার তালিকা তৈরি করুন এবং তালিকাটি শূন্য করে দিন। এই কাঠামোর সমস্ত বস্তু স্বয়ংক্রিয়ভাবে প্রকাশিত।

ফ্লিপ দিকে, যখন আপনি অ্যারে থেকে মানগুলি টানছেন:

NSValue *val = [points objectAtIndex:0];
CGPoint p = [val CGPointValue];

3
স্কেলারের ধরণের জন্য, এনএসএনবারে একবার দেখুন ... আপনি সংখ্যার মতো কনস্ট্রাক্টর দেখতে পাবেন উইথবুল: নাম্বার উইথইন্টিজার: নাম্বার উইথফ্লোট :, সংখ্যা উইথসাইন্ট শর্ট :, ইত্যাদি ইত্যাদি
জারেট হার্ডি

4
বিকল্পভাবে আপনি সরাসরি এনএসভ্যালু ব্যবহার করতে পারেন: [এনএসভ্যালু মান উইথবাইটস: এবং কিছু স্ট্রাস্টসোকাড্ডার অবজেক্টটাইপ: @ এনকোড (স্ট্রাক্ট সোকাড্ডার)]।
জিম ডোভে

7

আমি এটি ব্যবহার:

অ্যারে তৈরি করুন:

NSArray *myArray = @[[NSValue valueWithCGPoint:CGPointMake(30.0, 150.0)],[NSValue valueWithCGPoint:CGPointMake(41.67, 145.19)]];

1 ম সিজিপয়েন্ট পোস্ট করুন:

CGPoint myPoint = [myArray[0] CGPointValue];

3

আপনি এটিকে ন্যূনতম আকারেও লিখতে পারেন:

CGPoint myArray[] = { CGPointMake(5.5, 6.6), CGPointMake(7.7, 8.8) };

CGPoint p2 = myArray[1];

2

আপনি কি একবার দেখেছেন CFMutableArray? এটি আপনার পক্ষে আরও ভাল কাজ করতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.