স্টোরিবোর্ড এবং এআরসি ছাড়াই এক্সকোড


116

আমি নতুন এক্সকোড -5 ডাউনলোড করেছি এবং সবেমাত্র এটি ব্যবহার শুরু করেছি।

আমরা স্টোরিবোর্ড এবং এআরসি সহ সরাসরি অ্যাপ্লিকেশন তৈরি করতে পারি, এটি আগের সংস্করণগুলির মতো বিকল্পের জন্য চাইছে না।

সুতরাং, আমার প্রশ্ন হল আমরা কীভাবে এআরসি এবং স্টোরিবোর্ড ছাড়াই এক্সকোড 5 ব্যবহার করতে পারি। আমাদের স্টোরিবোর্ড ফাইলটি ম্যানুয়ালি মুছে ফেলতে হবে? বা অন্য কোন বিকল্প আছে।


3
সত্যই কেউ এর উত্তর দিতে পারে না, তবে আমি মনে করি অ্যাপল এটি করেছে কারণ স্টকবোর্ড এবং এআরসি উভয়ই এক্সকোড সহ অ্যাপ্লিকেশন বিকাশে বা উদ্দেশ্য-সি-তে ভবিষ্যত। যেহেতু এক্সকোড 5 এখনও একটি বিটা এটি হতে পারে যে তারা এই বছরের শেষের দিকে এটির জন্য সমর্থন যোগ করে তবে আমি মনে করি এটি ঘটবে না not
রয়েছে

6
স্টোরিবোর্ড ফাইলটি ম্যানুয়ালি সরান, এবং -fobjc-arcপ্রকল্প সেটিংসে সংকলক পতাকাটি সরান ।

19
প্রাথমিকভাবে প্রোগ্রামারদের দ্বারা ব্যবহৃত সরঞ্জামগুলি সম্পর্কিত প্রশ্নগুলি বিষয়টিতে খুব বেশি থাকে তবে শর্ত থাকে যে তারা কোনও কিছুর 'সেরা' বা 'শপিং' পরামর্শের জন্য জিজ্ঞাসা করবেন না। আমি সেই অনুযায়ী এটি আবার চালু করেছি।
টিম পোস্ট

1
তবে এটি করার উপযুক্ত জায়গা নয়। বুঝতে পারছি না।
এমজিমারম্যান 6

3
এনডিএর অধীনে কেবল এই জিনিসটি হ'ল শব্দ "এক্সকোড 5" অংশ। প্রকৃতরূপে বর্ণিত কোনও কিছুই এক্সকোডের পূর্ববর্তী সংস্করণগুলিতে করা যেতে পারে তাই প্রযুক্তিগতভাবে এই বিষয়টি আলোচনা করা মুক্ত।
এটমরিয়ট

উত্তর:


150

খালি অ্যাপ্লিকেশন সহ একটি প্রকল্প তৈরি করুন এবং যে কোনও ভিউকন্ট্রোলার যুক্ত করুন (আমি এখানে টেস্টভিউ কনট্রোলার যুক্ত করেছি)

   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
 {
   self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
   // Override point for customization after application launch.
   TestViewController *test = [[TestViewController alloc]     initWithNibName:@"TestViewController" bundle:nil];
   UINavigationController *nav = [[UINavigationController alloc]  initWithRootViewController:test];
   self.window.rootViewController = nav;
   [self.window makeKeyAndVisible];
   return YES;
 }

আরকে সরানোর পদক্ষেপ

1) বিল্ড সেটিংটি সেট সালে স্বয়ংক্রিয় রেফারেন্স কাউন্টিং করার কোন

////////////////////////////////////////////////// /////////////////////////শেষ//////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////

যদি আপনি ইতিমধ্যে সঙ্গে অ্যাপ্লিকেশন তৈরি করে থাকেন স্টোরিবোর্ড এবং এআরসি তারপর

স্টোরি বোর্ড সরানোর পদক্ষেপ

1) আপনার প্রকল্প থেকে Main.storyboard ফাইল সরান ।

2) এক্সিবের সাথে আপনার নিয়ন্ত্রকের জন্য নতুন ফাইল যুক্ত করুন, যদি এটি বিল্ড পর্যায়গুলিতে সংকলিত উত্সগুলিতে যুক্ত না হয় তবে ম্যানুয়ালি সেখানে যুক্ত করুন।

3) plist থেকে মুখ্য স্টোরিবোর্ড ফাইলের বেস নামটি সরান ।

4) অ্যাডিলেগেট ডিড ফিনিশ লঞ্চিং উইথঅপশন ফাইলটি পরিবর্তন করুন এবং যুক্ত করুন:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] ;

[self.window makeKeyAndVisible];

ঠিক যেমন :

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] ;

     // Override point for customization after application launch.

     TestViewController *test = [[TestViewController alloc]     initWithNibName:@"TestViewController" bundle:nil];
     UINavigationController *nav = [[UINavigationController alloc]  initWithRootViewController:test];
     self.window.rootViewController = nav;
     [self.window makeKeyAndVisible];

     return YES;
}


এখন, উপরের উদাহরণে আপনাকে ম্যানুয়ালি ম্যানুয়ালি ম্যানেজমেন্ট পরিচালনা করতে হবে যেমন,

 self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

 [test release]; 

আরকে সরানোর পদক্ষেপ

1) বিল্ড সেটিংটি সেট সালে স্বয়ংক্রিয় রেফারেন্স কাউন্টিং করার কোন


7
"খালি প্রকল্প" বিকল্প আর কি নেই? আমি মনে করি না আমি স্টোরিবোর্ডগুলি ব্যবহার শুরু করব।
সুলতান

1
আপনার টার্গেটের "প্রধান ইন্টারফেস" সেটিংসটি আপনার নতুন রুটে <দেখুন কন্ট্রোলার> এ পরিবর্তন করতে ভুলবেন না।
পল ব্র্যাডি

আপনি ঠিক বলেছেন @ সুলতান আমরা খালি প্রকল্পের মাধ্যমে এটি করতে পারি, তবে আমি পরিবর্তন ভিত্তিক অ্যাপ্লিকেশনটি ইতিমধ্যে ক্রেট করা থাকলে এই পরিবর্তনগুলি। (অ্যাপ্লিকেশন ফাইল থেকে ম্যানুয়ালি কিছু স্টোরিবোর্ড কোড সরিয়ে ফেলতে হবে) খালি প্রয়োগের সময় আমাদের এতে নতুন কোড যুক্ত করতে হবে :)
পিজেআর

আমি এমন একটি স্ক্রিপ্ট জুড়ে এসেছি যা স্টোরিবোর্ডগুলি ফিরিয়ে আনার বিকল্প যুক্ত করবে: stackoverflow.com/a/19792955/329928
ক্রিস লেভা

ইউআইএনএভিগেশন কন্ট্রোলার * নাভ কেন স্বতঃস্ফূর্ত হয় না? এবং আমাদের [ইউআই উইন্ডো বরাদ্দ] _ উইন্ডো ব্যবহার করা উচিত?
হরিজ্জামান

44

স্টোরিবোর্ড ফাইলটি মোছার পরিবর্তে, আপনি খালি অ্যাপ্লিকেশন টেম্পলেট দিয়ে একটি নতুন প্রকল্প তৈরি করতে পারেন। যাতে আপনি স্টোরিবোর্ড ফাইল তৈরি এড়াতে পারেন।

স্টোরিবোর্ড বাদ দিতে নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করুন: এখানে চিত্র বর্ণনা লিখুন

  1. খালি অ্যাপ্লিকেশন টেম্পলেট সহ একটি নতুন প্রকল্প তৈরি করুন।
  2. একটি নতুন ভিউ নিয়ন্ত্রণকারী যুক্ত করুন (উদাহরণ LoginViewController:)
  3. নীচে উল্লিখিত হিসাবে didFinishLaunchingWithOptionsইন AppDelegate.mফাইল পরিবর্তন করুন ।

পরিবর্তন:

#import "LoginViewController.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];

    LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc]  initWithRootViewController:loginVC];

    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];

    return YES;
}

আরসি সরান: সেটিং বিল্ডিং এ যান -> উদ্দেশ্য-সি স্বয়ংক্রিয় রেফারেন্স গণনা -> কোনও


1
কি দারুন! কবজ মত কাজ করে এবং গৃহীত উত্তর চেয়ে অনেক সহজ। আমার নিজের নিয়ামকের নামের সাথে মেলে যাবার জন্য আমাকে কেবলমাত্র সমস্ত রেফারেন্সই পরিবর্তন করতে হবে তা নিশ্চিত হতে হয়েছিল LoginViewController
জনক

11

নতুন প্রকল্প তৈরি করুন

! [নতুন প্রকল্প তৈরি করুন]

তথ্য স্টোরিবোর্ড ফাইলের বেস নাম মুছে ফেলুন

// ইনফোতে মূল স্টোরিবোর্ড ফাইলের নাম নাম সরিয়ে দিন

প্রশংসাপত্রের মধ্যে এই কোড যুক্ত করুন

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];

    LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc]  initWithRootViewController:loginVC];

    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];

    return YES;
}

তারপরে আপনার স্টোরিবোর্ডটি স্বয়ংক্রিয়ভাবে সরান।

দয়া করে এটি চেষ্টা করুন ... সফলভাবে কার্যকর করা হয়েছে। ধন্যবাদ


5

শর্টকাট: আমি পছন্দ করি

Xcode4 এ স্টোরিবোর্ড এবং এআরসি ছাড়াই প্রকল্পটি তৈরি করুন এবং তারপরে xcode5 এ প্রকল্পটি খুলুন।


1
কেবলমাত্র এটির জন্য এক্সকোডের পুরানো সংস্করণটি রাখা আপনার পক্ষে উপযুক্ত নয়। আমি বরং একটি নতুন প্রকল্প তৈরি করব, স্টোরিবোর্ডের জিনিসগুলি থেকে মুক্তি পাবো, অ্যাপডিজিটে UIWindow ইনস্ট্যান্টেশন যুক্ত করব এবং এটি পরবর্তী সময়ের জন্য একটি টেম্পলেট প্রকল্প হিসাবে সংরক্ষণ করব।
কার্ভিচ

3

আপনি একটি নতুন প্রকল্প তৈরি করার সময় এক্সকোড 4-এ "স্টোরিবোর্ডগুলি ব্যবহার করুন" চেকবক্সটি ছিল। পুরানো এক্সকোড 4 অ্যাপ্লিকেশন টেম্পলেটগুলি (এক্সএমএল ফাইলগুলি) ধরে তাদের এক্সকোড 5 তে রূপান্তর করা সম্ভব That এইভাবে, আপনি পুরানো টেমপ্লেটগুলি ফিরে পেয়েছেন যা আপনাকে স্টোরিবোর্ডগুলি চান কিনা তা চয়ন করতে দেয়।


আমি একটি স্ক্রিপ্ট লিখেছিলাম যা এটি আপনার জন্য সমস্ত কাজ করে: https://github.com/jfahrenkrug/Xcode4template


স্ক্রিপ্টটি চালানোর পরে আপনার "নতুন প্রকল্প" স্ক্রিনে একটি "এক্সকোড 4" বিভাগ থাকবে:

এখানে চিত্র বর্ণনা লিখুন

এবং তারপরে - হায়! - আপনি আপনার প্রিয় পছন্দগুলি ফিরে পাবেন:

এখানে চিত্র বর্ণনা লিখুন

এই স্ক্রিপ্টটি ব্যবহার করার জন্য আপনাকে http://developer.apple.com/ios থেকে Xcode 4 .app বান্ডিলের একটি অনুলিপি লাগবে ।


1
তবে, এই টেমপ্লেটগুলি পুরানো এবং উপলভ্য সমস্ত নতুন পরিবর্তনের সুবিধা গ্রহণ করবেন না যেমন -registerClass: forCellReuseIdentifier:।
মাহবুডজ

@ মমবাউদজ সত্য আপনার যদি সেই কার্যকারিতাটি আপনার পক্ষে গুরুত্বপূর্ণ হয় তবে আপনার টুইট করতে হবে। অবশ্যই আমি আশা করি যে অ্যাপল ভবিষ্যতে এক্সকোডের মুক্তির জন্য স্টোরিবোর্ডগুলি অপ্ট-আউট করার বিকল্পটি ফিরিয়ে আনবে।
জোহানেস ফারেনক্রগ

1
আমিও তাই আশা করি. আপনার মত, আমি ছোট অ্যাপ্লিকেশনগুলিতে স্টোরিবোর্ড ব্যবহার করি, বেশিরভাগই দ্রুত টেবিলভিউ বিকাশের কারণে, তবে বৃহত্তর অ্যাপ্লিকেশনগুলিতে স্টোরিবোর্ড একটি বড় ব্যথা। চারদিকে স্ক্রোলিং থেকে, সেগু আইডিগুলি স্মরণ করা পর্যন্ত (তারা স্টোরিবোর্ড এবং উত্স ফাইলগুলির মধ্যে # ডিফাইন বা এনএসএসআরটিং * ব্যবহারের উপায় যোগ করতে পারে), গিট বিবাদ সমাধানের জন্য এবং আরও অনেক কিছু, স্টোরিবোর্ডগুলি সব কিছু নয় এবং সব শেষ
মাহবাউদজ

যারা ভি / এ তীর যদিও।
জন রিসেলভাতো

1
@ জনরিসেলভাতো আপনি ঠিক বলেছেন :) দুর্বৃত্ত তীরগুলি এখন চলে গেছে :)
জোহানেস ফারেনক্রুগ

0

আমার একটি টিপ রয়েছে:

  1. প্রথম: আমি আমার প্রকল্পটি এক্সকোড ৪.6 দ্বারা তৈরি করেছি (কারণ এই সংস্করণটি এক্সকোড 5 এর নিকটতম)।
    • অবশ্যই এটি XCode 4.6 এর সাথে, আপনি আরসি, স্টোরিবোর্ড ব্যবহার বা না ব্যবহার করতে পারেন।
  2. দ্বিতীয়: এর পরে আমি এক্সকোড 5 দিয়ে আমার প্রকল্পটি খুলব = => আমি মনে করি যে এক্সকোড 5 বুঝতে পারে যে প্রকল্পটি ননআরসি ব্যবহার করছে, এবং অবশ্যই স্টোরিবোর্ড নেই।

আমি আশা করি আপনার প্রকল্পটি কাজ করবে! : ডি

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